重複の可能性:
C の次のマクロの副作用は何ですか? 埋め込み C
次の出力はどうなりますか。
#include <stdio.h>
#define MAN(x,y) ((x) < (y))?(x):(y)
main()
{
int i=10,j=5,k=0;
k= MAN(i++,++j);
printf("%d %d %d" ,i,j,k);
}
ここで、MAN(10,6) が呼び出され、出力は次のようになると考えました。
11 6 6
ただし、出力は
11 7 7
誰かがこれを説明してもらえますか。