#define宏,编译预处理指令(基础)

编译预处理指令

1.以#开头都是编译预处理指令

2.#define定义一个宏

#define

1.#define 名字 值 (注意末尾无“;”)

2.名字必须是一个单词,值可以使各种东西

3.c语言编译程序开始之前,编译预处理程序(cpp)会将名字换成值
(完全的文本替换)

1.一个宏的值中有其他宏的名字也会被替换

2.宏的值超过一行,最后一行之前每一行的行末要加\

3.可以注释宏

没有值的宏

#define __DEBUG
用于条件编译

预定义的宏

ANSIC标准定义了以下6种可供C语言使用的预定义宏:
__LINE__ 在源代码中插入当前源代码行号
__FILE__ 在源代码中插入当前源代码文件名
__DATE__ 在源代码中插入当前编译日期〔注意和当前系统日期区别开来〕
__TIME__ 在源代码中插入当前编译时间〔注意和当前系统时间区别开来〕
__STDC__ 当要求程序严格遵循ANSIC标准时该标识符被赋值为1。
__cplusplus
标识符__LINE____FILE__通常用来调试程序;
标识符__DATE____TIME__通常用来在编译后的程序中加入一个时间标志,以区分程序的不同版本;
当要求程序严格遵循ANSIC标准时,标识符__STDC__就会被赋值为1;
当用C++编译程序编译时,标识符__cplusplus就会被定义。

带参数的宏

1.一切都要有括号,值要有括号,参数要有括号

2.可带多个参数,也可组合嵌套其他宏

3.宏没有类型检查,部分宏会被inline函数取代

#define asd(x) ((x)*123)

#define MIN(a,b) ((a)>(b)?(a):(b))
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值