enum
先定义,后声明
枚举类 枚举类名 {变量名。。};
枚举类 枚举类名枚举变量名=声明时;
以逗号隔开,没有数据类型
输出时只能是0,1,2,3等整数
定义时声明
枚举类 枚举类名 {数据类型,变量。。}枚举变量名 m;
匿名枚举直接定变量
枚举类{。。。}枚举变量名;
不能对枚举值进行修改,使用时为 枚举变量名 m =声明时的值
typedef 原类型名 新类型名
定义结构体和enum时必须用typedef,否则看起来很Low
预编译-宏
#define 宏定义 ,define 名字值
在函数中,值可以直接用名字代替
#define 宏替换
如:define M(y) y+1
则 M(a)就代表 a+1;
Add(x,y) x+y 则Add(a,b)代表 a+b
预编译-条件编译
#if #else #elif #endif 选择内容进行编译
与#define 进行搭配
#ifndef = #if !define
#ifdef = #if define
extern 有两个作用:1.默认修饰全局变量与函数 2.申明有一个全局变量或函数存在
申明的时候不能赋值,a.c文件中的变量想在b.c中使用就申明一下
static 修饰全局变量与函数,改变变量与函数的作用域只限于当前文件内
函数默认也是extern修饰,表示这个文件别的文件也可以用,但引用的时候还是需要申明一下,否则会警告
对于extern而言,当将文件#include导入时,就不需要再另外声明了
不属于static修饰的,就是默认auto修饰的
register寄存器