- 830 名前:解説 mailto:sage [2009/10/26(月) 23:49:59 ]
- >>824とか
リテラル表現を見つけるとCコンパイラは機械的にそれを void *型のconst ポインタ値に置換するというウワサ (void*)の(char*)のキャスト省略は認容されているからprintfとかに 与えても文法上合法だし、その処理系に付属しているライブラリ関数 ならば期待した動作をする。 問題はvoid*が指しているアドレスに実際に何が書かれているかに ついての規定が不可能になってきていること。 エンコーディング(フォントの種類とかサイズランク (微妙に書体が変わるんで)まで規定できる新しいコード体系とか) によっては連続したメモリ領域にマップしないほうが良い場合もあり 得るし実際しないだろうし。 そいった状況になったらchar s[]="うんたらかんたら"; がchar s[]={ 文字配列要素定義列 }; という解釈をしてもらえるという保証が無くなる可能性がある
|

|