总览
常见的关键字有以下这些:
typedef
自己重命名已经有的关键字
#include<stdio.h>
typedef unsigned int u_int;
int main()
{
u_int a = 10;
return 0;
}
上面这个就是把unsigned int自己重新命名为u_int
register
将变量的数据建议放入寄存器当中,这个建议就是有编译器自己来决定的
这样的变量是不可以取地址的,因为他不在内存当中
register int num=10;
static——静态
1.修饰局部变量
2.修饰全局变量
3.修饰函数
修饰局部变量
改变了变量的生命周期
可以当作计数器
他的值可以不被销毁,可以被保存
#include<stdio.h>
int count()
{
static int a = 0;
return a++;
}
int main()
{
for (int i = 0; i < 10; i++)
{
printf("%d",count());
}
return 0;
}
这里就可以观察到a的值并没有因为结束了函数调用就被销毁,反而是保存了原有的值,改变了变量的生命周期,跟程序的生命周期一样长,但是作用域并没有变
修饰全局变量
test1
#include<stdio.h>
extern int a;//对了,这里不能引用源文件
int main()
{
printf("%d", a);
return 0;
}
test2
int a = 2020;
结果是2020
但是,如果加上static
test2
static int a = 2020;
就会提示
static修饰的全局变量在外部文件中不可访问。
默认的全局变量是具有外部链接属性的,
被static修饰后就变成了内部链接属性,不能在外部使用了
static修饰的函数
跟static修饰的全局变量一样的,就不再赘述了