#defineで定義された関数は、別の#defineで定義された変数を使用できますか?
1954 ワード
defineはプログラムの事前コンパイル中にコードを置き換えることができることを知っています.先日、事前定義された関数で事前定義された変数を使用できるかどうかを尋ねる質問がありました.質問の説明は少し複雑かもしれません.詳細は以下の通りです.
プログラムの実行結果は次のとおりです.
つまり、#defineは、呼び出し先であっても#define文を使用するすべての文を置換します.
#include
#define N 3
#define M N*2
#define Add(n) N+n
int main()
{
printf("The add val is: %d
",Add(5));
printf("The m val is: %d
", M);
return 0;
}
プログラムの実行結果は次のとおりです.
The add val is: 8
The m val is: 6
つまり、#defineは、呼び出し先であっても#define文を使用するすべての文を置換します.