2ちゃんねる版 邪悪なCコードコンテスト
■ このスレッドは過去ログ倉庫に格納されています
0531デフォルトの名無しさん
2006/10/10(火) 01:55:15C++でも出来た気がするが、処理系依存かもしれない(GCC等では、Cでも出来る)。
可変長構造体は、昔から使われているテクニック。
ファイルフォーマットがどうのというのは、本当のメリットではない。
(ヘッダとデータを別領域に置くやり方と大差ない)
本来は、例えば下のFAQの例において、namestrをポインタとして実体を別に持つことと比較して
mallocの呼び出しコストと管理領域(およびポインタ1つ分の領域)を節約するというのが
明らかなメリットを生かした使い方となる。
で、この可変長構造体と呼ばれるテクニックは、
C FAQにおいても、邪道ながら「全てのコンパイラで使える」と記されている。
http://www.kouno.jp/home/c_faq/c2.html#6
intのサイズを始め、ほとんどの「規格に明記されていない点」は
例外的な処理系をいくつも挙げているというのに。
■ このスレッドは過去ログ倉庫に格納されています