一,局部作用域和全局作用域
在{}中的为局部作用域,不在任何{}中为全局作用域
形参也是局部变量,局部变量未初始化为随机数,全局变量未初始化全清0;
函数名有全局作用域。
二,可见性
1,标识符必须先定义在使用’
2,在无包含关系的作用域中定义的同名标识符互不影响。
3.两个或两个具有包含关系的不同作用域中定义的同名标识符,外层标识符在内层不可见。
4,同一作用域中不得定义同名标识符。
三,变量的生存期
静态生存区与程序运行周期相同
用static修饰的局部变量,把动态生存期改为静态生存期
局部变量的存储类别
1,auto自动变量,变量i的空间自动存储。
2,register寄存器变量
把变量空间开到CPU内部,读写效率高;
3,extern 声明外部变量
头文件只放声明不放定义
4,在函数或全局变量前加static,限制使用范围只能在本.c文件使用。
四,预处理指令
#define N N为标识符,定义宏名字,宏名大写
预处理只是简单的文本替换
如上其输出为33
其输出为39
四,条件编译
#if 0
#endif
#ifdel 标识符 ,若此宏没有定义则以下代码无效
#ifndel DEBUG 如果没定义代码才有效。
在头文件中 #ifndef _FUNC_H_
#define_FUNC_H_
#endif
避免对同一个头文件包含,防止格式错误。