初识C语言:关键字
文章目录
一. 关键字
C语言提供的关键字
- C语言提供的,不能自己创建关键字
- 变量名不能是关键字
1.常见关键字
A. auto是自动的,每个局部变量都是auto修饰的。
int mian()
{
auto int a = 10;//自动创建,自动销毁的 - 自动变量
//auto基本上省略掉,新的C语言中也有其他用法 - 暂时不考虑
return 0;
}
B.extern是用来声明外部文件的
C.register 寄存器关键字
int main()
{
//大量/频繁被使用的数据,想放在寄存器中,提升效率
register int num = 100;//建议num的值放在寄存器中
return 0;
}
计算机中数据可以存放在哪里呢?
- 寄存器:更小
- 高速缓存:几十MB
- 内存:8G~16G
- 硬盘:500G – 买的
- 网盘:2T– 免费的
从下往上:造价越高,速度越快,空间越小
注:随着CPU(中央处理器)的高速发展,内存的读写速度跟不上CPU的处理速度,所以出现高速缓存,寄存器。
D.(un)signed 有(无)符号的 10 -20
E.static 静态的!
1.static修饰局部变量:改变局部变量的生命周期(本质上是改变了变量的存储类型)
栈区 | 局部变量/函数的参数 |
---|---|
堆区 | 动态内存分配的 |
静态区 | 全局变量/static修饰的/静态变量 |
2.static修饰全局变量
全局变量在整个工程中都可以使用
static修饰全局变量,使得这个全局变量只能在自己所在的源文件(.c)内部可以使用,其他源文件不能使用!
全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性。但是被static修饰之后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量了!
3.static修饰函数
static修饰函数,使得函数只能在自己所在的源文件内部使用,不能在其他源文件内部使用
本质上:static是将函数的外部链接属性变成了内部链接属性!(和static修饰全局变量一样!)
void test()
{
int a = 1;//a是局部变量会自动销毁
a++;
printf("%d ", a);//结果为2222222222
}
int main()
{
int i = 0;
while (i<10)
{
test();
i++;
}
return 0;
}
void test()
{
static int a = 1;
a++;
printf("%d ", a);//结果为2~11,不销毁,生命周期变长
}
int main()
{
int i = 0;
while (i<10)
{
test();
i++;
}
return 0;
}
F.union 联合体(共用体)
G.void 无/空
H.volatile
注:define,include是不是关键字?NO
它们是预处理指令
I.typedef 类型定义
类型重定义
typedef unsigned int u_int;
int main()
{
unsigned int num = 100;
return 0;
}
版权声明:本文为iwkxi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。