パスワードを忘れた? アカウント作成
575380 journal

okuの日記: int[pointer] はコンパイルエラーになるべきか?

日記 by oku

Digital MarsC++ Forum への投稿 C Bug より:

char ch2 = 0[sz];

は Digital Mars C++ ではエラーになります。 これは結構前から知られていたと思うので、今更... という感じです。 確かに ISO-C/C++ にきちんと準拠した処理系なら pointer[int]とint[pointer]は等価なので、上記のコードはきちんとコンパイルできなければなりません。 しかし、C FAQ にある通り、array[int] が *(array + int) と等しく、故に *(int + array) と等しく、故に int[array] に読み替えられる、というのは IOCCC に出展する作品の元ネタにする程度の利用価値しかないのではないかと。

ということで、コンパイルエラーになっても構わないんじゃないかなあ、と思うんですが。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

身近な人の偉大さは半減する -- あるアレゲ人

読み込み中...