[過去ログ]
sizeof(char)が必ず1でも、省略すべきではない (683レス)
sizeof(char)が必ず1でも、省略すべきではない http://mevius.5ch.net/test/read.cgi/tech/1187521586/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
354: デフォルトの名無しさん [sage] 2007/09/03(月) 22:57:44 突然だがスレを激しくrollbackしていいかな。 sizeof(char)は確かに仕様で1と決まっているけど、省略しない方が良い。 コメントやsizeof(char)==1の理解が無くても、 ソースを見るだけで文字数→バイト数として扱いたい意図が明確になる。 それにコンパイラの最適化でどうせコストは0だ。 ただ、そんな冗長なソースが散在しているのが嫌だというのも同意出来る。 しかしそれ以前に、文字列の操作なんて普通はラップしないか? >malloc(sizeof(char)*(strlen(s)+1)) >malloc(strlen(s)+1) 両方とも、非常に短い関数以外でこんなん出てきたらどうかと思うんだが。 char* strmalloc(int len){return len<0?NULL:malloc((len+1)*sizeof(char ));} wchar_t* wcsmalloc(int len){return len<0?NULL:malloc((len+1)*sizeof(wchar_t));} void strfree(const char* s){free(s);} // 確保/解放を対とするためfreeを単純にラップ void wcefree(const wchar_t* s){free(s);} // 確保/解放を対とするためfreeを単純にラップ char* s2 = strmalloc(strlen(s)); strfree(s2); これくらいは抽象化するだろ?お前らどうやってる? http://mevius.5ch.net/test/read.cgi/tech/1187521586/354
356: デフォルトの名無しさん [sage] 2007/09/03(月) 23:28:41 >>354 一方俺はC++を使った。 http://mevius.5ch.net/test/read.cgi/tech/1187521586/356
373: デフォルトの名無しさん [sage] 2007/09/04(火) 02:49:51 >>354 > char* strmalloc(int len){return len<0?NULL:malloc((len+1)*sizeof(char ));} len=0のときにNULLにしてしまうのは、ちょっと馴染みがないんだが。 http://mevius.5ch.net/test/read.cgi/tech/1187521586/373
375: デフォルトの名無しさん [sage] 2007/09/04(火) 02:55:50 >>354 その引数lenの型は、size_tにして、条件演算子は排除。 http://mevius.5ch.net/test/read.cgi/tech/1187521586/375
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.019s