c语言初学者前来请教各位高手
#include<stdio.h>#define S(x) 4*x*x+1
main()
{
int i=6,j=8;
printf("%d\n",S(i+j));
}
请各位高手给个指点,我认为这个程序的结果是在宏定义的结果中x的值是14,但是运行后结果却得到了81;刚学不久,请高手给个具体分析
[ 本帖最后由 因为曾今年少 于 2011-4-14 08:15 编辑 ]
#define S(x) 4*x*x+1 S(i+j) 被扩展为 4*i+j*i+j+1 显然不是你要的结果 #define S(x) 4*(x)*(x)+1 应该这样进行宏定义 S(i+j) 被扩展为 4*(i+j)*(i+j)+1