一、初识常见关键字
C语言关键字
1.C语言提供的,不能自己创建关键字;
2.变量名不能是关键字。
常见的关键字:
auto,break,case,char,const,continue,default,do,double,else,enum,extern,float,for,goto,if,int,long,register,return,short,signed,unsigned,sizeof,static,struct,switch,typedef,union,void,volatile,while。
auto:是自动的,每个局部变量都是auto的;
extern:用来声明外部符号;
register:寄存器关键字,大量、频繁被使用的数据可以放在寄存器中,提升效率;
union:联合体(共用体)
typedef:类型的重定义/类型重命名。
//typedef 类型重定义(类型重命名) typedef unsigned int u_int; int main() { //下面两行代码效果一样 unsigned int num = 100; u_int num2 = 100; return 0; }
static:静态的;
1.static修饰局部变量,改变了局部变量的生命周期(本质上是改变了存储类型);
2.static修饰全局变量,使得这个全局变量只能自己的源文件(.c)内部可以使用,其他源文件不能使用;
全局变量在其他源文件内部可以被使用,是因为全局变量具有外部链接属性,但是被static修饰之后,其他源文件就不能链接到这个静态的全局变量了。
3.static修饰函数,使得函数只能被自己所在的源文件内部使用,不能在其他源文件内部使用,本质上static是将函数的外部链接属性变成了内部链接属性(和static修饰全局变量一样)
注:内存基本会化为3个区域:栈区、堆区、静态区
1.栈区:局部变量,函数的参数;
2.堆区:动态内存分配;
3.静态区:全局变量,static修饰的静态变量。
二、#define定义常量和宏
define和include都是预处理指令
//define定义常量 #define MAX 1000 //define定义宏 #define ADD(x, y) ((x)+(y)) int main() { printf("%d\n", MAX); printf("%d\n", ADD(2, 4)); return 0; }
ps:学习链接
https://www.bilibili.com/video/BV1cq4y1U7sg?p=1&vd_source=54ada085617a73e9210ec0c3d350a538