一、C语言的关键字们
1.常见关键字 2.部分关键字讲解 (1)auto:
int main()
{
auto int a = 10;//局部变量 - 自动变量
return 0;
}
局部变量 = 自动变量 一般局部变量前都有,局部变量自动创建,自动销毁,前面其实省略了auto。
(2)register(寄存器):
首先介绍一下为什么要使用寄存器。
计算机存储数据可以存在以下几个地方: 计算机读取一些数据是“分级”的,访问速度等级划分大概为寄存器>高速缓存>内存>硬盘。 CPU从这些存储器中读取数据,起初CPU速度与内存是匹配的,但是随着科技发展,CPU读取速度更快,内存无法与之匹配了。为了提高效率就更多地利用寄存器了。 所以,寄存器就是为了更加便捷效率而存在的。
register int a = 10;
//建议把a定义成寄存器变量
//一般应用在变量要被大量使用的时候
//定义成寄存器变量CPU将会读取的更快
(3)typedef:
type - 类型,是关于类型的定义,可以理解为类型重命名。 (据说数据结构可能还能用到)
typedef unsigned int u_int;
//unsigned 声明无符号整型
//格式:typedef - 类型定义 - 类型重定义
(4)static:
1.可修饰局部变量 - 静态局部变量 2.可修饰全局变量 - 静态全局变量 3.修饰函数 - 静态函数
举例:
void test()
//void声明函数无返回值或无参数,声明无类型指针
{
int a = 1;
a++;
printf("a = %d\n", a);
}
int main()
{
int i = 0;
while (i < 5)
//while循环
{
test();
i++;
}
return 0;
}
运行结果: 如果加上static会怎么样呢?
static int a = 1;
//在int a前加上static
运行结果: 得出结论:
a是局部变量,本来是要在一次运行后“销毁”的,可是增加了static,使a变成了一个静态(不动它)的局部变量,于是a后来没有“销毁”。
要是static修饰全局变量呢? 我们新建一个文件,添加一个全局变量,并为它加上static 再在另一个文件中打印这个变量(在之前的文章中做过实验,使用extern函数可以跨文件的使用全局变量)
运行结果: static修饰函数会怎么样?
在一个文件中定义一个函数 再在另一个文件中调用添加了static的函数 运行结果: 得出结论:
注:在函数那块是改变了函数的链接属性
(5)int: int定义有符号变量 (6)struct: 结构体关键字 (7)union: 联合体/共用体
......
//还有诸多关键字之后使用到将详细说明
|