-1
こんにちは、以下のプログラムの実行手順を立てる必要があります。マクロ展開後の出力は分かりません(間違った理解かもしれません)
#include<stdio.h>
#define SQUARE(x) (x)*(x)
void main()
{
int i = 5;
printf("%d\n", SQUARE(++i));
}
私はマクロのように理解しているように(++i)*(++i)
のように、結果= 42 (7)*(6)
として展開が、出力は、私は理由を理解しない49
のですか?
'以下のプログラムの実行手順を立てる必要があります。なぜですか?簡単に理解するのが難しい場合(それは)、目的に合っていません。プリインクリメントを取り除き、インクリメントをマクロ 'コール'の上に別の行として追加します。 – ThingyWotsit