静态局部变量初始化

mask一下一直以来的一个误区

#include <stdio.h>

void key(void)
{
	static unsigned char key_up =1;
	printf("key_up = %d \n", key_up);
	key_up = 0;
	printf("key_up = %d \n", key_up);
}

int main(void)
{
	key();
	key();

	return 0;
}

原以为会每次调子函数时,都会初始化静态局部变量。实际并非如此
在这里插入图片描述

#include <stdio.h>

void key(void)
{
	//static unsigned char key_up =1;
	 unsigned char key_up =1;
	printf("key_up = %d \n", key_up);
	key_up = 0;
	printf("key_up = %d \n", key_up);
}

int main(void)
{
	key();
	key();

	return 0;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42868654/article/details/88292573
今日推荐