计算机二级C语言:不带参数和带参数宏定义
2018-10-25 14:29:00 来源:233网校

宏定义(不带参数的宏定义,带参数的宏定义)

1.编译预处理就是对C源程序进行编译前,由″编译预处理程序″对预处理命令行进行处理的过程。

2.C语言中,凡是以″#″开头的行,都称为″编译预处理″命令行。C语言中的编译预处命令有:#define,#undef,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#line,#pragma,#error。这些预处理命令组成的预处理命令行必须在一行的开头以″#″号开始,每行的未尾不得加″;″号,以区别于C语句、定义和说明语句。

3.不带参数的宏定义:命令的一般形式为:

#define标识符字符串

定义中的″标识符″为用户定义的标识符,称为宏名。在预编译时,C预编译程序将出现的宏名替换成″字符串″的内容,这一过程也称为宏展开。

4.带参数的宏定义:命令的一般形式为

#define宏名(形式参数)字符串

定义中的″字符串″应包含括号中所指定的形式参数。注意宏名与括号之间不要加空格,否则就成为不带参数的宏定义了。

5.预编译时,遇到带实参的宏名,则按命令行中指定的字符串从左到右进行置换,原则是:遇到实参则以实参代替,非形参字符原样保留,从而成展开后的内容。