1

次のようなサンプルコードがあります。

int var;
var = MACRO_A;

は次のMACRO_Aように定義されていると思います。

#define MACRO_A    1234

しかし、ソースコードのどこにも定義されたものが見つかりませんが、コードを正常にビルドできます。最後の値は何ですか?MACRO_Avar

コンパイラはgccです。

4

2 に答える 2

2

ただし、ソースコードのどこにもMACRO_Aが定義されていませんが、コードを正常にビルドできるので、最後のvarの値は何ですか。

どこかにあるか、コンパイルされません。おそらく、コマンドラインで直接定義されていますか?(-DMACRO_A

于 2012-04-26T18:21:09.973 に答える
1

そのマクロは、-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 
$ 
于 2012-04-26T18:25:35.077 に答える