鱼C论坛's Archiver
论坛
›
C\C++交流
› 宏定义出错,求解
fctseng
发表于 2021-2-28 00:05:23
宏定义出错,求解
请问为何结果是1, 9, 25(不是1,4,9,16,25)?
#include <stdio.h>
#define SQ(y) ( (y)*(y) )
void main()
{
int i = 1;
while( i <= 5 )
{
printf("%d\n", SQ(i++) );
}
}
一叶枫残
发表于 2021-2-28 00:11:16
因为你这个宏定义一替换过来就变成了(i++)*(i++),这样printf一次就执行了两次i++了,于是导致这个结果。
页:
[1]
查看完整版本:
宏定义出错,求解