假设有人以以下方式编写增量宏(即将值增加1):
null
#define INC1(a) ((a)+1) #define INC2 (a) ((a)+1) #define INC3( a ) (( a ) + 1) #define INC4 ( a ) (( a ) + 1) |
为上述宏选择正确的语句。 (A) 只有INC1是正确的。 (B) 所有(即INC1、INC2、INC3和INC4)都是正确的。 (C) 只有INC1和INC3是正确的。 (D) 只有INC1和INC2是正确的。 答复: (C) 说明: 在C语言中,对于带有参数的宏,它们之间不能有任何空格 宏名称 和 左圆括号 .这就是为什么只有印加1和印加3是正确的。基本上,“#define INC2(a)((a)+1)”导致“INC2”扩展为“(a)((a)+1)”,这不是期望的扩展。 这个问题的小测验
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END