C语言全局变量定义方法
今天调试系统的时候,需要定义几个全局位变量,定义好后一编译,发现错误一大堆,错误基本都是位变量定义时产生的。以前也定义过全局变量啊,但是先前怎么没错误?瞎折腾了一会最后还是发现问题出在细节上面了。以前只是侥幸没遇到而已。今天做个总结,以后再忘记了就回来直接查一下。
extern unsigned char SysEventCounter;
上述声明是写在.H文件中的。其他.C文件若要用到该变量,直接包含该.H文件就可以了
如果想要赋初值,可以在用到它的.C文件中这样写:
unsigned char SysEventCounter = 0;
不用赋初值时,直接
unsigned char SysEventCounter;
就可以了。注意:只需要在一个.C文件中写即可,其他.C文件直接可以用。如果在其他.C文件中也这样写会产生重复定义的错误。
全局变量对变量的类型不限制,任何类型都可以,只要按照上述方法定义就不会有错误。