printf() ステートメント内からのマクロ関数呼び出しの使用を理解する上で問題に直面しています。
私は以下のコードを持っています:
#include<stdio.h>
#define f(g,h) g##h
main()
{
printf("%d",f(100,10));
}
このコードは、答えとして「10010」を出力します。
マクロ関数呼び出しは、引数を置き換えた呼び出しの代わりにマクロ関数コードを単純にコピーペーストすることを学びました。
したがって、コードは次のようになります。
#include<stdio.h>
#define f(g,h) g##h
main()
{
printf("%d",100##10);
}
しかし、置換マクロを使用して上記のコードを個別に実行すると、コンパイル エラーが発生します。
では、最初のコードでは答えとして 10010 が返され、2 番目のコードではコンパイル エラーが返されるのはなぜでしょうか?