次のようなサンプルコードがあります。
int var;
var = MACRO_A;
は次のMACRO_A
ように定義されていると思います。
#define MACRO_A 1234
しかし、ソースコードのどこにも定義されたものが見つかりませんが、コードを正常にビルドできます。最後の値は何ですか?MACRO_A
var
コンパイラはgccです。
次のようなサンプルコードがあります。
int var;
var = MACRO_A;
は次のMACRO_A
ように定義されていると思います。
#define MACRO_A 1234
しかし、ソースコードのどこにも定義されたものが見つかりませんが、コードを正常にビルドできます。最後の値は何ですか?MACRO_A
var
コンパイラはgccです。
ただし、ソースコードのどこにもMACRO_Aが定義されていませんが、コードを正常にビルドできるので、最後のvarの値は何ですか。
どこかにあるか、コンパイルされません。おそらく、コマンドラインで直接定義されていますか?(-DMACRO_A
)
そのマクロは、-D
オプションを使用してコンパイル中に渡された可能性があります。
#include <stdio.h>
int main()
{
int i = MACRO_A;
printf("MACRO_A : %d \n", i);
return 0;
}
出力:
$ gcc macro.c -D MACRO_A=10
$ ./a.out
MACRO_A : 10
$