#include <stdio.h> #define M(x)x*(x+1) void main() { int a = 2, b = 3; printf("%d", M(a + b)); }
时间: 2024-05-28 14:14:00 浏览: 172
#include<stdio.h>
这段代码的输出结果为 11。
预处理指令 #define 定义了宏 M(x) ,将表达式 x*(x+1) 替换为 M(x)。在 main 函数中,a 和 b 分别被赋值为 2 和 3,然后在 printf 函数中使用了宏 M(a + b)。
由于宏替换是在编译时期完成的,在替换前,预处理器会将 M(a + b) 展开为 (a + b)*(a + b+1)。所以,printf 函数实际上会输出 (2+3)*(2+3+1) 的值,即 11。
阅读全文