私は、このC++コードの抜粋を試験から持っています。私たちは、プログラムの出力が何であるかを書き出すと仮定しています。出力は「20」と仮定しましたが、出力は「10」です。どうしてこれなの?私はそうのように括弧でI + 2を入れた場合マクロ内でのC++の追加引数引数
#define func(x) (x*x)-x
int i=3;
int main() {
cout << func(i+2) << endl;
}
は:
cout << func((i+2)) << endl;
それはだろうと想定として出力が '20' です。
C++はこのコードをどのように処理して、20ではなく10を返しますか?
マクロはテキスト置換を行うだけで、 'func'は関数ではありません。 –