C言語なら俺に聞け(入門編)Part 104at TECH
C言語なら俺に聞け(入門編)Part 104 - 暇つぶし2ch707:はちみつ餃子 ◆8X2XSCHEME
12/08/03 12:58:08.12
>>685
俺が根拠にしてるのは JIS なんだが、そこでの記述はこうなってる。

> 呼び出される関数を表す式が、関数原型を含まない型をもつ場合、
> 各実引数に対して整数拡張を行い、型 float をもつ実引数は型 double に拡張する。

日本語でもかなりわかりにく表現だな。

... で終わる宣言がプロトタイプを含まない宣言なのであるとすれば、

void hoge(float a, ...);

という宣言に対して

hoge(1.23f, 1);

と呼び出した場合でもこの 1.23f は一旦 double に拡張されるってことにならないか?
それも変な話だと思う。

更に読み進めていくと

> 関数原型宣言子における省略記号標記は、
> 最後に宣言されている仮引数の直後から実引数の型変換を止める。
> 残りの実引数に対しては、規定の実引数拡張を行う。

とあるので printf に渡した第二引数以降は型変換しないということだでいいんじゃないかな。




次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch