Loose-Info.com
Last Update 2021/12/03
TOP - 各種テスト - gcc - -undef オプション

-undef
システム固有やGCC固有のマクロを事前に定義しない

テスト概要

-undefオプション無し、および-undefオプションを使用したコンパイル(プリプロセスのみ)

実行環境

GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1


コード例・出力内容中の表記

・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。

使用ファイル

sample.c
#define SAMPLE 1 int main(void) { return 0; }

動作テスト

-undefオプション無しでコンパイル
-dM、-Eオプションで、プリプロセス実行後定義済み全マクロの出力
$ gcc -dM -E sample.c #define __DBL_MIN_EXP__ (-1021) #define __FLT32X_MAX_EXP__ 1024 #define __UINT_LEAST16_MAX__ 0xffff #define __ATOMIC_ACQUIRE 2 #define __FLT128_MAX_10_EXP__ 4932 #define __STDC_IEC_559_COMPLEX__ 1 #define __FLT128_HAS_DENORM__ 1 #define SAMPLE 1 #define __FLT128_DIG__ 33 #define __SCHAR_WIDTH__ 8 #define __GCC_ATOMIC_SHORT_LOCK_FREE 2 #define __INT_LEAST64_WIDTH__ 64 #define __UINT_FAST8_TYPE__ unsigned char #define __ATOMIC_ACQ_REL 4 #define __ATOMIC_RELEASE 3 $ システム固有、GCC固有を含む全マクロの出力

-undefオプションを使用してコンパイル
-dM、-Eオプションで、プリプロセス実行後定義済み全マクロの出力
$ gcc -undef -dM -E sample.c #define __STDC_HOSTED__ 1 #define __STDC_UTF_16__ 1 #define __STDC_IEC_559__ 1 #define __STDC_ISO_10646__ 201706L #define _STDC_PREDEF_H 1 #define __STDC_IEC_559_COMPLEX__ 1 #define SAMPLE 1 #define __STDC_VERSION__ 201710L #define __STDC_UTF_32__ 1 #define __STDC__ 1 $ システム固有、GCC固有は定義されない