常见关键字
关键字是由C语言提供的不能私人创建,
关键字不能做变量名称;
auto 是自动的意思常用于修饰局部变量
extern是用来申明外部符号的
register寄存器关键字 建议编译器将变量储存在寄存器中;
(计算机中的数据可以寄存在1寄存器中,2高速缓存,3硬盘,4内存,5网盘;从1到5空间逐渐变大,但是造价越高,读取速度越快,空间就越小。)CPU拿数据一般从存储器拿,速度快。;找不到在逐级向下找。
signed是表示有符号的如(+)10或-10
unsigned是表示无符号的
static 静态的
union 联合体(共用体);
void 无或者空的意思
volatile C语言中暂时不讲;
define和include是我们的预处理指令不是我们的关键字
typedef是类型定义,(类型重定义);
一次次打unsigened太麻烦所以对它进行重新定义来简化它的书写.
static 静态的
正常情况下
1 修饰局部变量;改变局部变量的生命周期(本质上存储类型)
计算机存储类型
1栈区:局部变量,函数的参数
2堆区 动态内存分配的
3静态区 全局变量和static修饰的静态变量
static让a及值出去}不会销毁生命周期变长了,这样下回在进入是a的值是上回出函数的值3,依次类推。
2 修饰全局变量;[static修饰全局变量的话,使得全局变量只能在所在源文件内部运行,不能够跨文件(即使用extern声明也不行)]
全局变量在其它文件能使用是因为其具有外部链接性而它被static修饰后变改成了内部链接性属性,其它源文件就不能链接到。
3 修饰函数;使得函数只能在自己所在源文件的内部使用,不能在同一项目中的其它源文件中使用
本质上static将函数的外部链结属性改为了内部链接属性(和static修饰全局变量一样的作用)
正常情况下那个声明只打extern int Add(int x, int y);
define定义常量和宏。
1define定义符号(常量)
2 define定义 宏(在计算机中可以理解为模式替换);
第一行的X+Y有瑕疵,遇到乘法时会出错因为它是替换的
如这样算乘法时会变成4*2+3等于11而不是20应改为((X)+(Y))