C语言中的宏定义
程序员文章站
2022-03-20 15:49:26
(13)设有以下宏定义: #define N 3 #define Y(n) ( (N+1)*n) 则执行语句: z = 2 * ( N + Y(5+1) ); 后,z的值为 A) 出错 B) 42 C) 48 D)54 这道题的答案是48。 这里代入之后,要看清楚: N + Y( 5+1) 3 + ......
(13)设有以下宏定义:
#define n 3
#define y(n) ( (n+1)*n)
则执行语句: z = 2 * ( n + y(5+1) ); 后,z的值为
a) 出错 b) 42 c) 48 d)54
这道题的答案是48。
这里代入之后,要看清楚:
n + y( 5+1)
3 + (3+1)* 5 + 1 //宏定义中 *n, n是没有()的了
3 + 4 * 5 + 1 =24 //之后 24*2=48