C头文件中使用extern定义全局变量
日期: 2020-04-26 分类: 跨站数据测试 357次阅读
关于C语言中extern关键词的使用
最近在头文件中使用extern定义全局变量时,出现如下报错:
-
keil51:
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: SETPLACE MODULE: common.obj (COMMON)
-
VC:
main.obj : error LNK2001: unresolved external symbol _SetPalce Debug/extern_test.exe : fatal error LNK1120: 1 unresolved externals
解决方案
- 方法一:用extern来声明:
extern unsigned char SetPalce;
这一句只是对变量i进行声明,在c文件中必须加上unsigned char SetPalce=0;
进行定义 - 方法二:声明和定义同时进行:
extern unsigned char SetPalce=0;
- 对于有很多c文件和头文件的程序,这个时候全局变量就必须在头文件中声明而不需要初始化,然后在c文件中定义(该初始化的要初始化)。如果只在头文件中定义,则编译的时候会出现重复定义的错误。如果只有头文件中声明而没有在c文件中定义就会出现没有定义有警告的情况
参考文章:https://www.cnblogs.com/hnrainll/archive/2011/01/23/1942411.html
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
精华推荐