ページ 1 / 1
【雑談】フレキシブル配列メンバ
Posted: 2007年2月05日(月) 13:41
by keichan
Re:【雑談】フレキシブル配列メンバ
Posted: 2007年2月05日(月) 18:43
by Hermit
むかし出てきたことがありましたが、
(名前は特に無かったと思う)
ANSI 規格では明記されていませんでしたが、
FAQの様な、いろんな情報が、ANSI C89 制定後に、ANSI より出て来ている筈ですが、
そこで、このように使えるというサンプルが出たことがあるそうです。
ということで、後付ですが、ANSI C89 の定義の範囲内だったはずです。
サンプルは、
struct foo {
struct foo *next;
char str[1];
}
の、str に文字列を入れる様なかきかただったはず。
当然ですが、サイズ 0 のメンバはANSI は認めていないので、
gcc の str[0] や、bcc,cl などの str[/url] 形式は ANSI は認めていなかったはず。
今の C99 はどうかな?
ついでに、この手法は、ANSI 以前からあった方法だったと記憶しています。
MSC4 などのヘッダファイルの中にも有った様な気が・・・
Re:【雑談】フレキシブル配列メンバ
Posted: 2007年2月06日(火) 11:19
by keichan
Hermitさん、さらに突っ込んだ情報ありがとうございます。
>ということで、後付ですが、ANSI C89 の定義の範囲内だったはずです。
そうでしたか。C89の範疇に入っていたのですか。
>gcc の str[0] や、bcc,cl などの str[/url] 形式は ANSI は認めていなかったはず。
>今の C99 はどうかな?
JISX3010:2003(ISO/IEC9899:1999)を確認しましたが、特記事項として書いてありませんでした。