07/05/10 18:07:04
>>53
似てるけど違う。
C言語で先頭に # 付いたやつはコンパイラに渡される前に
プリプロセッサで処理される部分だ。で、プリプロセッサは
テキスト変換を行う。たとえば #include ならそれで指定
されているファイルをその部分に展開した新たなテキストを
作成する。コンパイラはそうやって変換された後のテキストを
読み込んでオブジェクトに変換する(更にそれをリンカが
読んで他のオブジェクトやライブラリと組み合わせて
(または実行時に動的に組み合わせられるようにして)実行
ファイルが完成する)。
プリプロセッサが処理した後にどうなるかを見たい場合は
gcc ならば -E オプションで確認できる。gcc -E x.c の
ような感じ。そうすると標準出力に結果が出る。
(他のコンパイラは知らないが同じようなことをする
オプションはあると思う)。