今天我在使用keil编写单片机程序的时候,发现了一个有趣的知识,那就是“全局变量定义和初始化使用2行代码实现”,做此笔记并和大家分享分享:
我们知道在main.c中如果想定义一个全局变量并初始化一般这样这样写:
u8 global_variable1 = 10;
static u8 global_variable2 = 20;
int main(void)
{
global_variable1++;
global_variable2++;
while (1)
{
}
return 0;
}
以上是最常规的写法:在定义全局变量的同时完成了初始化;
其实还有另外一种写法写成2行的做法:
u8 global_variable1;
u8 global_variable1 = 10; /*注意:变量类型u8是不能省略的*/
static u8 global_variable2;
static u8 global_variable2 = 20; /*注意:static u8都不能省略*/
int main(void)
{
global_variable1++;
global_variable2++;
while (1)
{
}
return 0;
}
这样编译器也是允许的,也就是全局变量可以将定义和初始化使用2行代码实现,注意变量类型和static关键字不能省略,否则报错。
希望对大家有所帮助。