已知下面的程序段,正确的判断是( )。 #define M 2 #define N(m)((M+1)*m) …… x=3*(M+N(5));

admin2013-08-15  29

问题 已知下面的程序段,正确的判断是(    )。
     #define M  2
     #define N(m)((M+1)*m)
     ……
   x=3*(M+N(5));

选项 A、程序错误,不允许嵌套定义
B、x=51
C、x=25
D、程序错误,宏定义不允许有参数

答案B

解析 C语言中的宏定义允许嵌套定义,也允许带变量。在对源程序编译时,先有一个预处理过程,其中一个任务就是替换宏定义。预处理程序扫描源程序若干遍,能够识别出嵌套的宏定义和带参数的宏定义。将参数代入整理得x=51。
转载请注明原文地址:https://kaotiyun.com/show/HgJp777K
0

最新回复(0)