メモの日々


2008年04月10日(木) [長年日記]

[c] stdarg.hの在り処

stdarg.h の中を見ようと思ったが、/usr/include に無い。/usr/include 配下を find で検索しても見つからない。なんでや。

ウェブで検索すると、[cppll:8090] Re: <trap> 可変長引数リストと参照 に、

> ...って、gcc の va_start の定義っていったいどこにあるんだ?
> 見あたらねぇ。

-H オプションを使ってコンパイルすれば何をインクルードしているか表示さ
れるので、それで分かります。

# gcc 3.2 (Cygwin) の場合なら、
# /usr/lib/gcc-lib/i686-pc-cygwin/3.2/include/stdarg.h です。

とあったのでこの方法で探すと、手元の ubuntu だと /usr/lib/gcc/i486-linux-gnu/4.1.3/include/stdarg.h にあった。なんでこんな所に置くんだろう。

gccのマニュアル もメモ。

-H

通常の動作に加えて、使用されたヘッダファイルの名前を表示します。