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

宏定义

简单宏

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

#define N 100
int 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 常量表达式
    编译内容
#endif
defined运算法仅用于预处理器,N必须是定义的宏
#if defined(N)
....
#endif

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

#ifdeft 标示符
......
#endif
#ifndef 标示符
......
#endif
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值