Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据测试

C头文件中使用extern定义全局变量

关于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

上一篇: java正则表达式自我理解

下一篇: 数据分析系列:绩效(效率)评价与python实现(层析分析、topsis、DEA)

精华推荐