标签:外部 返回值 读取 c中 函数 sig 错误 存储位置 void
auto :用来定义自动申请内存、自动释放内存的变量(局部变量、块变量)
不加就代表加,与signed一样(注意:全局变量前不能使用)
const :是对变量提供保护,定义出来不一定是常量,但不决定安全
变量一旦初始化后,就不能显示修改的值
const修饰被初始化过的全局变量才是真正的变量,一旦修改就会出现错误,因为编译器把这种全局变量的储存位置划分成text
static:(限制作用域《全局变量和函数》,改变存储位置、延长生命周期《局部、块变量》)
《1》修饰变量
修饰全局变量:会限制全局变量的作用域,只能在他所在的.c内使用
修饰局部、块变量:改变存储位置由栈改为bss(无初始化)或data(初始化)但使用范围(作用域)没有变,并会延长生命周期
《2》修饰函数
const int f(void):const修饰返回值
static int f(void):static修饰函数
有普通函数(外部函数)变成内部函数,只能在.c中作用
register:
计算机的存储介质:硬盘-》固态硬盘-》内存条-》缓存-》寄存器
申请把变量的储存位置更改为寄存器,不一定成功
寄存器变量不能取地址,&变量名(错的)
volatile :不确定,易变的
如果一个变量值没有被显示的修改,编译器不会再次从内存他的数值,而是直接使用上次的读取结果(优化)
volatile的功能就是告诉编译器变量的值随时会发生改变,不要优化他的取值过程(每次用到变量时都去内存中获取他的值)
int num=10
num==num;永远为真
volatile int num=10
num==num;不一定为真
extern:声明变量,多文件中共享全局变量时,谁使用谁声明
定义:创建变量名,分配存储空间
声明:创建变量名
a.c中定义一个全局变量,b.c中也想使用
标签:外部 返回值 读取 c中 函数 sig 错误 存储位置 void
原文地址:https://www.cnblogs.com/zhangjinguang/p/10849879.html