【C语言总结】宏定义,预处理

宏定义简单宏

格式:#define 标示符 替换列表

#define N 100int a[N];//N就是100带参数的宏

格式:#define 标示符(x1, x2, x3,……xn) 替换列表

#define MAX(x, y) ((x) > (y) ? (x) : (y))

注意:程序编译的时候会把大写的标示符替换成原来的表达式,,所以编译时候程序会增大。

优点或者缺点

优点 ①程序可能会稍微快些 ②宏会更通用 缺点 ①编译后代码通常会变大 ②无法用指针指向一个宏 ③宏可能会不止一次的计算它的参数

宏定义中括号的使用

①#define TWO_PI (2 * 3.1415) ②#define RES(x) ((x) * 10) 原因:因为宏在编译的时候是替换表达式,所以很多不确定因素 例如:

#define RES(x) (x * 10) //假如宏是这样定义的,参数没有括号int j = RES(i + 1);int j = i + 1 * 10; //编译器会替换成这样。与结果完全不对取消宏

格式:#define N

条件编译#if 常量表达式编译内容#endifdefined运算法仅用于预处理器,N必须是定义的宏#if defined(N)….#endif

ifdef指令测试一个标示符是否已经定义为宏

#ifdeft 标示符……#endif#ifndef 标示符……#endif

人若勇敢就是自己最好的朋友

【C语言总结】宏定义,预处理

相关文章:

你感兴趣的文章:

标签云: