C语言出现无法解析的外部命令情况是怎么回事,我把结构数据的声明和定义都放在头文件中:

2025-02-24 21:37:31
推荐回答(2个)
回答1:

这个extern是声明而非定义,它表示first在别的某处,肯定是你在别的地方没有定义。
你可以在和该头文件对应的cpp文件中定义这三个变量。

直接在头文件定义(即去掉extern)是不好的做法,如果多个cpp一起编译,它们引用了不止一次这个头文件,会出现重复定义的错误。

最佳的做法是,一处定义,多处声明。

回答2:

把extern去掉