0

実際、私はマクロを連続して持つコードを持っています

ここで知りたいのは、コードで実際にどのように機能するかです。以下の結果を見て、自分のプリプロセッサを書きたいので、本当に驚いています

#define int char     //macro1
#define char float   //macro2
#define float int    //macro3
main()
{
 int x;
 char y;
 float z;
}

前処理後にコードがファイルにあると予想したのは、int、int、int としての 3 つの変数 x、y、z すべてです。

しかし、驚くべきことに(私にとって)型が変更されていないのはなぜですか?前処理中にマクロがどのように機能するのかを詳しく説明してくれる人はいますか

4

1 に答える 1

4

マクロの展開は展開が完了するまで続き、マクロを再帰的に展開することはできません。定義した各マクロは別のマクロに展開されますが、展開が再帰的になると停止します。つまり、型は変更されません。

于 2012-07-03T05:30:04.873 に答える