- 16
- 0
- 约9.53千字
- 约 12页
- 2017-06-03 发布于湖北
- 举报
d.html
?
?
?
C语言中的宏定义
?
?
?
?
14.3? 宏定义
我们从第2章以来使用的宏被称为简单的宏,它们没有参数。预编译器也支持带参数的宏。本节会先讨论简单的宏,然后再讨论带参数的宏。在分别讨论它们之后,我们会研究一下二者共同的特性。
14.3.1? 简单的宏
简单的宏定义有如下格式:
[#define指令(简单的宏)] #define? 标识符 替换列表
替换列表是一系列的C语言记号,包括标识符、关键字、数、字符常量、字符串字面量、运算符和标点符号。当预处理器遇到一个宏定义时,会做一个 “标识符”代表“替换列表”的记录。在文件后面的内容中,不管标识符在任何位置出现,预处理器都会用替换列表代替它。
不要在宏定义中放置任何额外的符号,否则它们会被作为替换列表的一部分。一种常见的错误是在宏定义中使用 = :
#define N = 100?? ??? /*** WRONG ***/
int a[N];??????????? /* 会成为 int a[= 100]; */
在上面的例子中,我们(错误地)把N定义成一对记号(= 和100)。
在宏定义的末尾使用分号结尾是另一个常见错误:
#define N 100;?????? /*** WRONG ***/
int a[N];??????????? /* ???become int a[1
原创力文档

文档评论(0)