//关键字由C语言提供,不能自己创建关键词
//变量名不能是关键字
auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
auto 自动变量-每个局部变量都由auto修饰,自动创建,自动销毁;但auto省略掉了
const 修饰常变量
extern 用于声明外部符号
regiser 寄存器关键词,大量或频繁被使用的关键词,放在寄存器中,提升效率
typedef 对类型进行重命名 比如typedef unsigned int uint_32//把无符号整型简写为unit_32,后面的调用即可直接调用缩写
static 用于修饰变量与函数
static①修饰局部变量改变了变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束;②一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用;③一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。
证明①
#includevoid test()//定义一个函数test { static int a = 1;//不加static,局部变量a出了它的作用域就会自动销毁,加上static以后,a的生命周期变长了,但是它的作用域仍然处于该局部。 a++; printf("n%d", a);//打印a,不加static,则会打印10个2,加上static以后,就会打印2~11 } int main() { int i = 0; while (i < 10) { test();//调用test函数 i++; } return 0; }
证明②则与③同理
证明③
加减函数.c
static int Add(int x, int y)//用static修饰函数Add,则函数只能在本文件中使用,删除此段,则可以跨文件使用
{
int z = x + y;//加法运算
return z;//返回运算后得出的结果
}
源.c
#includeextern int Add();//声明函数,由于函数Add被static修饰,所以会报错无法解析,删除static,程序正常运行 int main() { int a = 0; int b = 2; int c = Add(a, b);//将a,b委托给函数Add进行运算,返回的结果赋值给c printf("%d", c);//输出c return 0; }



