register-寄存器
计算机可以把数据存储到那些位置?
按照内存大小和读取速度依次为:
- 寄存器(字节)
- 高速缓存(mb)
- 内存(G)
- 硬盘(T)
register关键字可以建议计算机把数据放到寄存器中
register int a=10;
tpyedef-重命名
结构体使用较多
typedef unsigned int unint;//把unsigned int 重命名为 unint
static
修饰局部变量
//代码1
void test() {
int a = 0;
a++;
printf("%d\n", a);
}
int main() {
int t = 0;
while (t < 10) {
test();
t++;
}
return 0;
}
//代码2
void test() {
int a = 0;
a++;
printf("%d\n", a);
}
int main() {
static int t = 0;
while (t < 10) {
test();
t++;
}
return 0;
}
static修饰的a在出test函数后没有销毁(成为了类似全局变量的存在)
本质上是将变量从栈区放到静态区;
static修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。
修饰全局变量
全局变量本身具有外部链接属性
在A文件中定义的变量可以通过链接在B文件中使用
一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,
不能在其他源文件内使用。(作用域变小)
修饰函数
函数也具有外部连接属性
一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。(不具有外部链接属性)