[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[WitchTech 00728] Re: 文字列を数値に変換するには?
- Subject: [WitchTech 00728] Re: 文字列を数値に変換するには?
- From: "K.Takaoka" <saepro@din.or.jp>
- Date: Thu, 15 Feb 2001 03:47:49 +0900
エル%高岡@鯆です。
2001/02/15 03:21 頃に
「[WitchTech 00725] Re: 文字列を数値に変換するには?」ということで
Kenichiro Ueda さん
>> strcpy, strcat は見た目でやっていることが分るので、少なくと
>> も変なループが書いてあるよりは可読性が高いと思います。
> 「変なループ」の話は、この件では問題にしていないと思って
> いたんですけど。それに変なループはループを見直すのが重要
> なんであって、この問題に限った話ではないですよね。
ループであろうが、sprintf であろうが、それは strcat よりも確実
に可読性を落とすと思っています。
「文字列の終端に別の文字列を繋ぐ」手法は沢山あるんでしょうけど、
最も可読性が良い、つまりコードが目的を明に示しているのは strcat
だと思っています。
strcat をそれ以外の用途に使う可能性を考慮してコードを読むような
ことはないでしょう。
逆に sprintf は 文字列の終端に別の文字列を繋ぐ 以外の用途を考慮
しなければならない可能性を持っています、それは可読性が落ちている
ということです。
単に私は、#707 にあった
> strcat ですが、使わないように習慣をつけたほうがいい
という点について、理由として
> 文字列編集を strcpy と strcat を連発してやると読みに
> くいし処理も遅いから
という2点を挙げられていること、またそれに対して
> sprintfの使いかたを覚えましょう
と、比較されているかのようなことについて、
・strcat, strcpy は sprintf と比較して可読性が悪い
・strcat, strcpy は sprintf と比較して速度が速い
という両方の点に対して異論がある、というだけです。
format 関数が潜在的に持っている問題点については、特に触れなく
て結構ですし、その話をしたいとも思いません。
sprintf(buffer, "%s%s", buf1, buf2);
が
strcpy(strecpy(buffer, buf1), buf2);
とか
strcpy(buffer, buf2);
strcat(buffer, buf2);
よりも高速になるような状況は非常に稀有だと思います。
# sprintf の strcat/strcpy に対応した使い方、が うえけんさん の
# 思っている使い方と違ったらごめんなさい。
--
// El (K.Takaoka) ! saepro@din.or.jp
// PGP : 7F61 E57E 972B 595D 14CD EFA6 C055 7B61 13D4 F367
ML Archives