嵌套的宏定义在展开的过程中会计算么?
#define N 2
#define M N + 1
#define K M + 1 * M / 2
是这样:
M: 2 + 1 = 3
K: 3 + 1 * 3 / 2 = 4.5
还是这样:
K: 2 + 1 + 1 * 2 + 1 / 2 =5.5
看这个程序的执行效果好像是第一种。
- C/C++ code
#include <stdio.h>#define N 2#define M N + 1#define K M + 1 * M / 2int main ( ){ int i; for (i = 1; i < K; i++) printf( "t " ); printf( "\n" ); return 0;}或者还有其他的原因?
[解决办法]
是2 + 1 + 1 * 2 + 1 / 2 = 5