C语言宏定义易错题

    科技2026-09-24  23

    #include <stdio.h> #define MAX(x,y) (x)>(y)?(x):(y) void main(){ int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10; printf("%d",t); }

    输出结果为7. 原因: 宏定义并非函数,只是单纯地语言替换 即 t = (a+b)>(c+d)?(a+b):(c+d)10 因此前者大则输出前者,后者大则输出后者10

    Processed: 0.008, SQL: 9