#pragma comment ディレクティブはターゲットまたはオブジェクト・ファイルにコメント・ストリングを配置します。
.-compiler-------------------------------. >>-#--pragma--comment--(--+-date-----------------------------------+--)->< +-timestamp------------------------------+ '-+-copyright-+--+---------------------+-' '-user------' '-,--"token_sequence"-'
サブオプションは以下のことを行います。
compiler | コンパイラーの名前とバージョンが、生成されたオブジェクト・モジュールの最後に追加されます。 |
date | コンパイルの日付と時刻が、 生成されたオブジェクト・モジュールの最後に追加されます。 |
timestamp | ソースを最後に変更した日付と時刻が、 生成されたオブジェクト・モジュールの最後に追加されます。 |
copyright | token_sequence によって指定されたテキストが、 生成されたオブジェクト・モジュール内にコンパイラーによって入れられ、 プログラム実行時にメモリーにロードされます。 |
user | token_sequence によって指定されたテキストが、 生成されたオブジェクト内にコンパイラーによって入れられますが、 プログラム実行時にメモリーにロードされません。 |
以下のプログラム・コードがコンパイルされて出力ファイル a.out が作成されると想定します。
#pragma comment(date) #pragma comment(compiler) #pragma comment(timestamp) #pragma comment(copyright,"My copyright") int main() { return 0; }
オペレーティング・システムの strings コマンドを使用して、オブジェクトまたはバイナリー・ファイルでこれらのストリングやその他のストリングを検索することができます。以下のコマンドを発行すると、
strings a.out
a.out に組み込まれたコメント情報が、a.out で検出された他のストリングと共に表示されます。例えば上記のプログラム・コードを想定した場合、以下のようになります。
Mon Mar 1 10:28:09 2005
XL C/C++ for Linux Compiler Version 8.0
Mon Mar 1 10:28:13 2005
My copyright
token_sequence に指定されたストリング・リテラルが 32767 バイトを超えると、通知メッセージが出され、プラグマが無視されます。