1、代码块
不同的语句,使用大括号{}括起来,就构成了一个代码块。C 语言允许在代码块里定义一个变量,这个变量的作用域也仅限于这个代码块 内,因为编译器就是根据{}来做入栈出栈操作来管理变量的作用域的。如下面的程序:
int main(void)
{
int i = 3;
printf("i=%d\n",i);
{
int i = 4;
printf("i=%d\n",i);
}
printf("i=%d\n",i);
return 0;
}
运行结果为:
i=3
i=4
i=3
2、宏定义
11、GNU C之宏定义中使用语句表达式_宏定义后面可以使用表达式吗-CSDN博客
3、参考
嵌入式C语言自我修养
4、中断函数
中断函数由于没有独立的函数栈,是不能有返回值的。想一想:中断函数在哪里被调用、何时被调用,我们全都不知道,中断函数的返回 值应该传给谁?它会破坏当前被中断函数的函数栈。
同上,中断函数也是不能传参的,传给谁?谁调用了它?都是未知的。如果你给中断函数传参,也会破坏当前被中断函数的函数栈。