Last Update 2021/12/17
-dD
#define指令のリストと前処理の結果を出力
テスト概要
-dDオプションを使用した際の出力例
実行環境
GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1
GNU C Library 2.28
GNU Binutils 2.31.1
コード例・出力内容中の表記
・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
使用ファイル
sample.c
#ifdef __STDC_VERSION__
#define SAMPLE 0
#else
#define SAMPLE 1
#endif
int main(void)
{
return SAMPLE;
}
動作テスト
-dDオプションを使用した際の出力例
(前処理で停止させるため-Eオプション使用)
(前処理で停止させるため-Eオプション使用)
$ gcc -dD -E sample.c
# 1 "sample.c"
# 1 "<built-in>"
#define __STDC__ 1
#define __STDC_VERSION__ 201710L
#define __STDC_UTF_16__ 1
#define __STDC_UTF_32__ 1
#define __STDC_HOSTED__ 1
︙
#define __unix 1
#define __unix__ 1
#define unix 1
#define __ELF__ 1
#define __DECIMAL_BID_FORMAT__ 1
# 1 "<command-line>"
# 31 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 19 "/usr/include/stdc-predef.h" 3 4
#define _STDC_PREDEF_H 1
# 38 "/usr/include/stdc-predef.h" 3 4
#define __STDC_IEC_559__ 1
#define __STDC_IEC_559_COMPLEX__ 1
# 58 "/usr/include/stdc-predef.h" 3 4
#define __STDC_ISO_10646__ 201706L
# 32 "<command-line>" 2
# 1 "sample.c"
#define SAMPLE 0
int main(void)
{
return 0;
}
$ #define指令のリスト、および前処理の結果を出力
注)
上記出力例において、__STDC__などの「定義済みマクロ」と考えられる#define指令が含まれ、
マニュアル上の「it does not include the predefined macros」の適用内容が不明。