C言語なら俺に聞け(入門編)Part 104
■ このスレッドは過去ログ倉庫に格納されています
0709デフォルトの名無しさん
2012/08/03(金) 14:24:31.25ならない。aという引数はプロトタイプを持つのだから。
プロトタイプを持たないのは...の部分。
>とあるので printf に渡した第二引数以降は型変換しないということだでいいんじゃないかな。
多分理解がおかしい。一部の変換(配列→ポインタ、関数→ポインタ、LValue→RValue)もするし、拡張もする。
例えば、
char *p="ZZZ";
printf( "%p", p );
はchar*を(LValue→RValueはするけど)void*へは変換しないで積む。
これが "実引数の型変換を止める"と言うこと(というか、変換のしようがない)。
# ちなみに、これは鼻から悪魔が出るかもしれないコード。%pはvoid*を要求するから。
で、
printf( "%f", 4.2f );
は "規定の実引数拡張"が行われてdoubleな4.2がprintfに渡る。
■ このスレッドは過去ログ倉庫に格納されています