这是函数的
#include<stdio.h>
int main()
{
int i=1;
int sq(int y);
while(i<=5)
{
printf("%d\n",sq(i++));
}
}
int sq(int y)
{
return((y)*(y));
}
然后这是宏定义的
#include<stdio.h>
#define pi(y) ((y)*(y))
int main()
{
int i=1;
while(i<=5)
{
printf("%d\n",pi(i++));
}
}
宏定义的需要把printf("%d\n", pi(i++)); 变成 printf("%d\n", pi(i)); ++i;
宏定义是一对一替换.
建议用指令 g++ -E xx.c 查看代码差异。
i++ * i++ 和 i * i 不一样
多谢,已解决