读书人

嵌套的宏定义在铺展的过程中会计算么

发布时间: 2012-09-07 10:38:15 作者: rapoo

嵌套的宏定义在展开的过程中会计算么?
#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

读书人网 >C语言

热点推荐