C51自动变量static会自动清0吗?

来源:百度知道 编辑:UC知道 时间:2024/07/04 02:42:25
假如定为char类型(static char),static在程序运行的时候不停的累加1,不给他个赋值0清0,加到256后超出范围,它会自动清0吗?还是会什么情况。

不会 加到255 结果为-1(即1111 1111,MSB为符号位),然后就是溢出后会自动重新开始计数,用以下程序可以验证,修改#define cnt 256 这一句中的cnt的值
程序如下:
#include <stdio.h>
#define cnt 256
void main()
{
int i;
static char val = 0;
for (i=0; i<cnt; i++)
{
val++;
}
printf("val = %d\n", val);
}