extern unsigned char SysEventCounter;
上述声明是写在.H文件中的。其他.C文件若要用到该变量,直接包含该.H文件就可以了
如果想要赋初值,可以在用到它的.C文件中这样写:
unsigned char SysEventCounter = 0;
不用赋初值时,直接
unsigned char SysEventCounter;
就可以了。注意:只需要在一个.C文件中写即可,其他.C文件直接可以用。如果在其他.C文件中也这样写会产生重复定义的错误。
全局变量对变量的类型不限制,任何类型都可以,只要按照上述方法定义就不会有错误。
重要的是搞清楚C里面的声明和定义的概念,一个全局变量可以声明多次,但是只能定义一次。
还要注意的是,静态全局变量和全局变量是有区别的,静态全局变量被多个单元引用后,相对于被定义了多次,而且相当于是各个文件独立的全局变量,而全局变量要在整个系统中公用,那么引用它的源文件只需要用extern做声明即可,注意的是:全局变量只需要在任何一个文件中有且只定义一次即可。