fairylee83 发表于 2017-12-26 15:12:59

关于符号常量定义

#define F(n) 2*n
问F(3+2)是多少?
我写的代码是:
#include <stdio.h>
#define F(n) 2*n
void main()
{int n;
        n=3+2;
        printf("%d\n",F(n));
}
得数是10
错在哪里了?求助大神

BngThea 发表于 2017-12-26 15:35:24

main函数里面直接写
printf("%d\n",F(3+2));

你如果将3+2赋值给n,那么就看不出宏的特点了,因为此时相当于 F(5)
F(5) 的结果就是10
但是 F(3+2) 的结果应该是 2×3+2 == 8

fairylee83 发表于 2017-12-26 15:57:14

BngThea 发表于 2017-12-26 15:35
main函数里面直接写




原来如此,谢啦{:5_91:}
页: [1]
查看完整版本: 关于符号常量定义