文章前言
本章主要讲解的我们在c语言中常见的关键字,这些关键字中对于平时很常见并且很简单的关键字就不在过多叙述,我们知道在**c语言中我们不能独自根据自己的想法去创建关键字,并且变量名不能是关键字
*
一、常见的关键字
auto(自动变量) | break(循环里常用) |
---|---|
extern(声明) | case(kiss语句使用) |
const(常变量) | continue(继续) |
register(寄存器关键字) | signed(有符号) |
default(默认) | unsigned(无符号) |
static(静态的) | struct(结构体关键字) |
union(联合体) | typedef(类型定义) |
void(空) | volatile(用于中断函数的变量) |
char | return |
double | else |
enum | float |
for | go to |
if | int |
short | sizeof |
switch | whie |
其中register(寄存器关键字):他的作用就是当你输入一个值的时候你想把它房间寄存器中,这时register就是建议系统把数值放入寄存器中,但是最后放不放还是根据系统自己选择
这里说一个关于寄存器相关的知识点
电脑存储分为:寄存器、高速缓存、内存、硬盘、网盘
当越往上走造价就越高但是想对的速度快,空间小,这就是为什么有的想要把数据存储到寄存器中
预处理指令
我们在上面表中发现没有define和include那么类似这种的是什么呢?
预处理指令define和include
程序设计语言的预处理的概念:在编译之前进行的处理。 C语言的预处理主要有三个方面的内容: 1.宏定义; 2.文件包含; 3.条件编译。 预处理命令以符号“#”开头。
特殊关键词解释
①typedef类型重定义
用法 typedef + 类型
例如typedef unsigned int u—int
这里我们将u-int和int进行重定义,下次我们只需要输入u-int即为int
②static静态的
三种作用
1.修饰局部变量
改变局部变量的生命周期,其本质上改变了变量的存储类型
我利用一个案例来说一下这特点
#include <stdio.h>
void text()
{
int a = 1;
a++;
printf("%d\n", a);
}
int main()
{
int i = 0;
while (i < 10)
{
text();
i++;
}
//printf("%d\n", i);
return 0;
}
利用while循环进行一个十个数的打印,那么当数据进入while语句后会跳到viod语句中进行操作,当进入到viod中此时a=1,a++ 后=2之后当输入离开viod语句后数据的生命周期消失,此时数据再次进入viod的时候a还是从1进行,那么最后的结果就是10个2
这是第一种,此时我加上static关键字我们再来看看效果
#include <stdio.h>
void text()
{
static int a = 1;
a++;
printf("%d\n", a);
}
int main()
{
int i = 0;
while (i < 10)
{
text();
i++;
}
//printf("%d\n", i);
return 0;
}
结果
这里我其他的跟上面一样就是在viod中加入了一个static语句,这个作用就是,当我们数据进入到viod语句中a=1,a++后a=2当数据离开viod语句后数据的生命周期并没有跟着结束二十记录在viod中,当下次进入后a就从2开始,因此之后的成绩就是2,3,4,5,6,7,8,9,10,11
2.修饰全局变量
一般当我们有两个工程项目的时候,如果第二个项目文件也想用项目一中的关键数据或者变量名一般我们只需要在第二个工程文件中开头生命一下这个变量名之后我们就可以使用,但是如果这个变量名在工程一文件中被static修饰了那么就无法使用
这就是在全局变量中使得这个全局变量只能在当前源文件使用其他文件不能使用,即使是声明也不行
3.修饰函数
修饰函数的作用和修饰全局变量的意思差不多,只是使得函数只能在自己所在的源文件内部使用不能在其他源文件中使用
而其本质上是static将函数外部链接属性变成了内部链接属性
知识点全局变量有外部连接属性但是被static修饰后就变成了内部链接属性其它源文件就不能链接到这个静态的全局变量了
③extern声明
在static中提到了声明的作用,而声明其实就是为了在其他源文件中使用其他源文件的函数名或者变量名
在这里如果我想用右边文件的MAX的值在左边文件中使用,那么在左边文件中开头extern声明一下
结果