猿问

为什么把括号中3+2换成5之后结果会不一样呢?

#include"stdio.h"

#define PI 3

#define S(x) PI*x*x

main()

{

int area;

area=S(3+2);

printf("%d\n",area);

system("pause"); 

}


我想说什么来着
浏览 1400回答 2
2回答

MadMarical

你好。宏替换不会自动补全括号,如果你非要用s(3 + 2)这种比较奇怪的操作,在使用宏替换时必须要用pi * (x) * (x)这样才不会产生不同的结果。
随时随地看视频慕课网APP
我要回答