#define的作用

[复制链接]
1105|14
 楼主| engao 发表于 2016-5-14 19:55 | 显示全部楼层 |阅读模式
命令#define 定义了一个标识符及一个串。 在源程序中每次遇到该标识符时,均以定义的串代换它。ANSI 标准将标识符定义为宏名,将替换过程称为宏替换。命令的一般形式为:
#define identifier string
zb0830 发表于 2016-5-14 19:56 | 显示全部楼层
该语句没有分号。在标识符和串之间可以有任意个空格,串一旦开始,仅由一新行结束。
zb0830 发表于 2016-5-14 19:56 | 显示全部楼层
宏替换仅仅是以文本串代替宏标识符,前提是宏标识符必须独立的识别出来,否则不进行替换。例如:
#define XYZ this is a tes 使用宏 printf("XYZ");//该段不打印"this is a test"而打印"XYZ"。因为预编译器识别出的是"XYZ"
 楼主| engao 发表于 2016-5-14 19:57 | 显示全部楼层
如果串长于一行,可以在该行末尾用一反斜杠' \'续行。
#defineLONG_STRING"this is a very long\
string that is used as an example
zb0830 发表于 2016-5-14 19:57 | 显示全部楼层
C 语言程序普遍使用大写字母定义标识符。
 楼主| engao 发表于 2016-5-14 19:57 | 显示全部楼层
用宏代换代替实在的函数的一大好处是宏替换增加了代码的速度,因为不在函数调用的开销。但增加速度也有代价:由于重复编码而增加了程序长度
qiangg 发表于 2016-5-14 20:06 | 显示全部楼层
原来有这么多的用处,学习了
baimiaocun2015 发表于 2016-5-15 12:15 | 显示全部楼层
#define 定义了一个标识符及一个串,这个在写程序时经常用到的。
vivilzb1985 发表于 2016-5-20 21:46 | 显示全部楼层
#define 的功能在程序中是不能替换的。
vibra2016 发表于 2016-6-27 21:55 | 显示全部楼层
#define 的用法在程序中是最常见的。
huihui520 发表于 2016-6-28 07:28 | 显示全部楼层
这是最常用的宏了
comeon201208 发表于 2016-6-28 21:57 | 显示全部楼层
#define的一般用来定义一个常量的
没有六一了 发表于 2016-6-29 07:03 | 显示全部楼层
这个不就是替换嘛
飞翔的控制器 发表于 2016-6-29 07:18 | 显示全部楼层
替换是它的最主要作用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

400

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部