Objective-C [ObjC part:4];
>>553 >>551の2行目のようにchar型のデータが欲しいだけなら何もすることは無いので char c; c = 48; で十分だ。
もし3行目のように文字列として扱いたい場合でも今の場合なら一文字目 '0' == 48 と二文字目の '\0'
の分だけなので char c[2]; でよい。
それにchar c[2] = {0} のように書いた場合、2要素目以降は言語仕様上不定(実装上はほぼ確実に0にセットされるが)。
なんだそんな話か
char c[4096];
とか平気でやってるぞ
なんと愚かな!
>>555 なーるほど。そういうことなら問題なっすぃん。
なんか48 61 65 71みたいな数値を文字列に直すのかなーとか思って多めにとっただけっすぃん。
>555
悪意がないことを先にいっておく
>char c[2] = {0} のように書いた場合、2要素目以降は言語仕様上不定
なる理由はどこから
気になったので、規格書があればそのセクションをお願いします
>560
確認しました
確かに静的記憶域と同じと書いてありますね
American National Standard Programming Language C
3.5.7 Initialization
Semantics
If there are fewer initializers in a list than there are members of
an aggregate, the remainder of the aggregate shall be initialized
implicitly the same as objects that have static storage duration.
おまいら静的変数と同じとか遠回しなこと言ってないで、
>>555 は間違いで
char c[2] = {0}の様に書いた場合 2 要素目以降は c 言語の
仕様として 0 にセットされる、とストレートに指摘しろyo