本思维导图主要总结国家计算机等级考试二级C语言部分知识点编译预处理与宏替换
树图思维导图提供 计算机考试知识点编译预处理与宏替换思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 计算机考试知识点编译预处理与宏替换思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:262f65164df0225843c16d4f3697d2b6
计算机考试知识点编译预处理与宏替换思维导图模板大纲
在c语言中,凡是以“#”号开头的行,都称为“编译预处理”命令行。所谓编译预处理就是在c编译程序对源程序进行编译前,由编译预处理程序对这些编译预处理命令行进行处理的过程。
c语言有12种预处理命令:
#define、#undef、#include、#if、#else、#elif、#endif、#ifdef、#ifndef、#line、#pragma;#error。
1.不带参数的宏定义
(1)定义不带参数的宏
格式
#define宏名替换文本或#define宏名
说明
在define、宏名和替换文本之间用空格隔开;#define命令行可以不包含“替换文本”,这仅说明标识符“被定义”。
(2)使用不带参数的宏时应注意7个事项:
①替换文本中可以包含已定义过的宏名;
②当宏定义在一行中写不下,需要在下一行继续时,只需在最后一个字符后紧接着一个反斜线“\”;
③同一个宏名不能重复定义,除非两个宏定义命令行完全一致;
④替换文本不能替换双括号中与宏名相同的字符串;
⑤替换文本并不替换用户标识符中的成分;
⑥用作宏名的标识符通常用大写字母表示,这并不是语法规定,只是一种习惯,以便与程序中的其他标识符相区别;
⑦在C程序中,宏定义的定义位置一般写在程序的开头。
2.带参数的宏定义
(1)定义带参数的宏:
格式
#define宏名(形参表)替换文本
说明
例如,#defineMU(X,Y)((X)*(Y))。
在这个宏定义命令中,mu(x,y)简称为“宏”,其中mu是一个用户标识符,称为宏名,宏名和左括号“(”必须紧挨着,它们之间不得留有空格。其后一对圆括号中由若干称为形参的标识符组成,各形参之间用逗号隔开。“替换文本”中通常应该包含形参。
(2)使用带参数的宏时应注意6个事项:
①和不带参数的宏名相同,同一个宏名不能重复定义,除非两个宏定义命令行完全一致;
②在调用带参数的宏名时,一对圆括号必不可少,圆括号中实参的个数应该与形参个数相同,若有多个参数,它们之间用逗号隔开。在预编译时,编译预处理程序用“替换文本”来替换宏,并用对应的实参来替换“替换文本”中的形参;
③“替换文本”的形参和整个表达式应该用括号括起来;
④在宏替换中对参数没有类型的要求;
⑤宏替换是在编译前由预处理程序完成的,因此宏替换不占运行的时间;
⑥宏替换中,实参不能替换括在双引号中的形参。
3.终止宏定义
用#undefine提前终止宏定义的作用域。
树图思维导图提供 计算机考试知识点文件的读写思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 计算机考试知识点文件的读写思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:3addfcccb8839b09c49d9cf6c7c011d1
树图思维导图提供 计算机考试知识点文件指针思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 计算机考试知识点文件指针思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:3b7318d886411679e5e0eb18447fbd02