初识C语言:关键字

初识C语言:关键字

文章目录

  • 初识C语言:关键字
    • 一. 关键字
      • 1.常见关键字
        • A. auto是自动的,每个局部变量都是auto修饰的。
        • B.extern是用来声明外部文件的
        • C.register 寄存器关键字
        • D.(un)signed 有(无)符号的 10 -20
        • E.static 静态的!
        • F.union 联合体(共用体)
        • G.void 无/空
        • H.volatile
        • I.typedef 类型定义

一. 关键字

C语言提供的关键字

  1. C语言提供的,不能自己创建关键字
  2. 变量名不能是关键字

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修饰全局变量
初识C语言:关键字_第1张图片
全局变量在整个工程中都可以使用

初识C语言:关键字_第2张图片
static修饰全局变量,使得这个全局变量只能在自己所在的源文件(.c)内部可以使用,其他源文件不能使用!
全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性。但是被static修饰之后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量了!
3.static修饰函数
初识C语言:关键字_第3张图片
初识C语言:关键字_第4张图片
初识C语言:关键字_第5张图片
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;
}

你可能感兴趣的:(c语言)