C/C++の宿題を片付けます 107代目
■ このスレッドは過去ログ倉庫に格納されています
0605デフォルトの名無しさん
2008/05/24(土) 12:43:30sは読み取り専用の場合が殆どです。マルチバイトコードの場合はバイトサイズを
間違った為に何の前触れもなく突然死する、深刻なバグが起こるので、読み取り専
用にされてます。それだけでも使いにくいです。プログラムテスター泣かせなコードです。
このコードはコンパイラの最適化能力が低かった為、上記手段で共通文字列を手動で
共有させなければならなかった古い時代の化石コードです。現在は最適化が行われ、
同一内容固定文字列は共有されたコードが出力されます。
ですので、上記sを使って共有させるのと同じことが
#define s "ABC"
で出来ます。
上記のようなchar s[]を使うのはやめましょう。
将来的に上記構文は廃止されるかもしれません。
それに対して
char s[]={'A','B','C','¥0'};は書き込み可能なsを作ります.
その代わりマルチバイトキャラクタコードの変更可能文字列変数への宣言時直接初期化は難しくな
ってきてます
■ このスレッドは過去ログ倉庫に格納されています