C/C++ プリプロセッサ一覧
・ヘッダーファイルをきちんと解析したいのでプリプロセッサを理解する。
・C言語 プリプロセッサ (Google検索)
・C言語 ヘッダーファイル (Google検索)
・C言語 プリプロセッサより
まずは、C言語の標準ライブラリから調べる。特に、stdio.hから調べてみる。
#ifdef
シンボルが定義されているときに#ifdefから#endifまでのプリプロセッサ命令を実行する。これは、if文の条件分岐と一緒ですね。
#ifdef シンボル名 シンボルが定義されているときに実行するプリプロセッサ命令 #endif
#elseを使って、真がダメなら、次の条件を実行するという命令もできます。
#ifdef シンボル名 シンボル名が定義されているときに実行するプリプロセッサ命令 #else シンボル名が定義されていないときに実行するプリプロセッサ命令 #endif
#pragma
ホストマシンやオペレーティングシステムに固有の機能をサポートする。
例えば、データが置かれるメモリ領域の正確な管理や、バージョン情報をプログラムコードに埋め込んだりします。固有のものなので、コンパイラごとに使用できる機能が異なる。
__FILE__ | ソースファイル名(Windowsはフルパス、Solarisはファイル名のみ) |
__LINE__ | 行番号 |
__DATE__ | コンパイル日付 |
__TIME__ | コンパイル時間 |
__STDC__ | ANSI規格対応ならば1、ANSI規格非対応ならば0 |