c语言中的static变量
static data_type var_name = var_value;
1)程序运行时,静态int变量仍保留在内存中。当声明变量的函数调用结束时,局部变量将被销毁。
2)静态变量是在数据段中分配的内存,而不是堆栈段。
3)如果未显式初始化静态变量 (如全局变量),则初始化为0。
4)在C中,静态变量只能使用常量文字初始化。
5)静态全局变量和函数在将变量或函数的范围限制为文件,在其他文件里不能访问。
C语言巧用sizeof运算符计算数组元素个数
在使用C语言开发中,使用sizeof运算符可以计算数组占用的总字节数,使用总字节数除以第一个元素的字节数,就可以动态计算数组元素个数了。
#include <stdio.h>
typedef struct
{
const char* name;
const char* unit;
}Sensor;
Sensor sensor[] =
{
{"temp","°C"},
{"Humd","%"},
};
int main()
{
int length = sizeof(sensor)/sizeof(sensor[0]);
printf("length %d\n", length);
for(int i = 0;i<length;i++)
{
printf("name: %s,unit: %s\n", sensor[i].name,sensor[i].unit);
}
return 0;
}