1.#if 和if语句
#if是条件编译,if是条件语句
#if是在代码编译时执行的,if是在代码运行时执行的
#if后面不跟变量,if后面可以跟变量
应用:
#if defined a
2.#ifdef
#ifdef _XXXX …
程序段1…
#else …
程序段2…
#endif
这表明如果标识符_XXXX已被#define命令定义过则对程序段1进行编译;否则对程序段2进行编译。
3.#undef 用来将前面定义的宏标识符取消定义
#define 定义一个预处理宏
#undef 取消宏的定义
#if 编译预处理中的条件命令,相当于C语法中的if语句
#ifdef 判断某个宏是否被定义,若已定义,执行随后的语句
#ifndef 与#ifdef相反,判断某个宏是否未被定义
#elif 若#if, #ifdef, #ifndef或前面的#elif条件不满足,则执行#elif之后的语句,相当于C语法中的else-if
#else 与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,相当于C语法中的else
#endif #if, #ifdef, #ifndef这些条件命令的结束标志.
defined 与#if, #elif配合使用,判断某个宏是否被定义
4.enum 枚举 一种C语言数据类型,可以让数据更简洁
用法
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
默认第一个元素为0 ,可更改,后面的值在没有赋值时是前面的值加1.
5.#define __IO volatile
volatile是一个特征修饰符(type specifier).volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值