关键字
1.C语言提供的,不能自己创建
2.关键字不能做变量名
auto 是自动的 - 每个局部变量都是auto修饰的
register 寄存器关键字
计算机中,数据可以存放在哪里呢?
寄存器 更小 最快
高速缓存 几十MB
内存 8G-32G
硬盘 500G
网盘 2T 最慢(依赖网络)
typedef 类型重定义
static
在C语言中:
static是用来修饰变量和函数的
1.修饰局部变量-静态局部变量
2.修饰全局变量-静态全局变量
3.修饰函数-静态函数
static修饰局部变量
static修饰局部变量,改变了局部变量的生命周期(本质上是改变了变量的存储类型)
内存分区
static修饰全局变量
新建源文件test.c和add.c
add.c中定义g_val全局变量,在test.c中直接使用会报错提示"未声明的标识符"
如何声明?
extern声明
声明后成功运行
给全局变量g_val添加static属性后报错
static修饰全局变量,使得这个全局变量只能在自己所在的源文件(.c)内部使用,其他源文件不能使用,即使extern外部声明也不可以
全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性
但是被static修饰后,就变成了内部链接属性,其他源文件就不能链接这个静态的全局变量了
static修饰函数
static修饰函数,使得函数只能在自己所在的源文件内部使用,不能在其他源文件内部使用,即使extern外部声明也不可以
本质上:static是将函数的外部链接属性变成了内部链接属性(和static修饰全局变量一样)