第1个回答 2008-10-30
7次
#define N 2 这是预编译指令,在程序运行之前就进行了编译
这句话就相当于替换的意思 用 N 代替 2
程序运行时只要见到 N 就把它当作 2 执行,就这么简单
#define M N+1 等于 M === 2+1 ===3 后面的以此类推
第2个回答 2008-10-30
C语言的编译系统对宏命令的处理是()
A。在程序运行时进行的
B。在对源程序中其他成分正式编译之前进行的
C。在程序连续时进行的
D。和C程序中的其他语句同时进行编译
这个选b .编译系统先要把宏替换掉,然后再继续其他编译过程
这是什么意思?就以下面题为例,请说明一下。
#define N 2
#define M N+1
#define NUM 2*M+1
main()
{int i;
for(i=1;i<=NUM;i++)printf("%d\n",i);
}
该程序中的for循环执行的次数是()
A.5 B.6 C.7 D.8
这个选 c
M=N+1=3,NUM=2*M+1 = 7
第3个回答 2008-10-30
什么7次
明明是NUM->2*M+1
->2*N+1+1(注意,宏定义时没有括号,所以替换后仍然没有!)
最后就是2*2+1+1=6次!!
宏定义属于预处理部分,是在编译之前进行的。