ということにしたいのですね
>>948 客は言語仕様を理解してるかどうかあやしいからな。
仕様書に沿ってないとなに言われるやら…
>>946 Cなら「もし価格が0でなければ」だからなんら問題なし。
それがCのイディオム。
好きではないけれど。
priceがunsinged intのとき
if(price>0){を、どうせ同じだからと言って、
if(price){と書くの?
俺はそう書かない。
>>957 というか
price欄==0 をその商品が無いとか、価格が決まっていないというような事に使ってるのだろう
基本的に0をマジックナンバーにするという発想なんだろうけど、
だったら配列も 1ベースにすりゃ良かったのになあと思うんだよね。
それはお前だけ
そこら辺は石屋さんのせいだからなあ。そっちに文句言ってくれ。
Cの設計思想は高級アセンブラで、石の都合に合わせて作られてるんだから。
たぶん ゼロで終端した文字列 というのから出発したんだと思う。
それをポインタでこう書けばスマートだろという方向で 0かどうかなんて設計にしたんだろ。
「どうだpascalのサイズ付文字列よりスマートで格好いいだろ? 255文字なんて制限もないし」
みたいに
>961
どうして石の話になるんだ?
0の時に条件分岐も、配列のインデックスが0からなのも、石の都合に合わせた結果だろ?
CPUの殆どは
比較結果でZフラグが立ち、Zフラグで分岐するかスキップする
0 と比較して分岐する
のどちらかがあるから0と比較するのは意味があるようだが、
が、大抵は同じコストで負数かどうかでも分岐出来る 負数がfalseでも良かったのでは?
配列については1ならバイトサイズのオフセットをコンパイル時に入れれば良く
実際、pascalなどは好きに出来て、コードを見れば静的に解決されており効率は落ちていない。
石とか言うやつの書くコード。 寺内貫太郎かよ。
プライスレス
>>868 だって、細かく書かないと そうじゃないCPUもあるってすぐ書かれるから
970 :
http://www.vector.co.jp/soft/win95/util/se072729.html:2006/03/18(土) 18:43:25
TextSS の64bit化おながいします
もしくは64bitにネイティブ対応した置換ソフトないですか?
ぱっと見て「マルチだなぁ」と思う投稿
マルチというより荒らしだろ。
>>965 Basic言語の中には真値が-1(全bit1)のものもあるから負数がfalseはまずいっしょ。
>>934 Cでも配列とポインタが同じものと思われると困るのですが
Cすら使えないやつのひがみだからほっとけ。
>>970 64bitネイティブに対応した置換? えと、たとえば俺の今使っている
Athlon 64 のマシンの Linux で動く sed とか?
awk とか Perl とか。
>>976 そいつ、いろんなスレに
>>970をマルチポストしまくってるからレスしても見ないと思うよ。
if( price > 100) .. は書くけど
if((price > 100) == true) .. とは書かない。
if の中では論理比較してることが自明だから。
done が bool であるならば
if(done) .. は書くけど
if(done == true) .. とは書かないようにしてる。
bool はそれ自体で論理式だから。
プロジェクトの規約で後者が推奨されたことはないが
そう書けと言われればそれに従う。
省略可能なものはすべて省略する。
コメントさえもだ。
ならば貴様の存在さえも私が消し去ろう
>>979 if (price > 0) はどうなのかと…。
>>974では const で固定されたポインタAと 配列 B[] との違う例をどうぞ
>>983 なんでconstで固定されたって条件が増えてるの?
>>984 そりゃルールは自分の有利なように変えるもの
次スレは?
>>985 そりゃそうなんだけどさ
ポインタ変数つくって[10]ってアクセスしたら落ちるよな? C言語うろ覚えだけど
constとか関係あるのかな? と思って
意味がわかるように書いてくれませんか?
>>983 const int *a;
int b[16];
void f(const int **);
void g(int (*)[16]);
このときf(&a)とg(&b)はコンパイルできるが、f(&b)とg(&a)はコンパイルできない。
>>990 型が違うからな。
ていうか、誰か2のスレ作れ。
もうあるのか? Linuxのおちゅ〜しゃでお気に入り
しか見てないから他のスレの情况分からないが。
>>979 > done が bool であるならば
重要な一言でましたね。
> if(done) .. は書くけど
こう書くにはdoneがboolであると知っていなければならない。
だけど、さっきの一言でわかるように、この行を見ただけでdoneがboolなのかはわからない。
> if( price > 100) .. は書くけど
これはこの行を見ただけでifの中がboolだと明確。
> if((price > 100) == true) .. とは書かない。
だからこうは書かない。当然。
> if(done) .. は書くけど
だけど、この行はこれを見ただけではわからない。
> if(done == true)
だからこう書くほうがいい。これはdoneがboolであることをこの行で明確化するのが目的。
目的を考えると、なにかと言ってくる、if((done == true) == true) を使っての反論は的外れ。
("明確でないもの"を明確にするのと、"明確になっているもの"を明確にするのとでは、意味がぜんぜん違う)
>>992 言ってることは分かるのだけど
if(done)は明確である、つまり真偽値以外なら全部比較しろ という方がいいな
Cなら書けちゃうからしょうがないんだけどさぁ
boolであることを明確にする目的は?
>>992 むしろ if (done == true) と書かれるとtrueとfalse以外の値をとりうる整数変数で、
非0でなくtrueと同値の場合だけを処理したいのかと勘ぐってしまいますが?
>>995 ? 整数型とtrue/falseを比較すれば警告出るじゃん。
埋め
梅
>>983 例えば
char* const A = "abcde";
char B[] = "abcde";
この場合Aの指してる文字列は書き換え可能領域にあるとは限らない。
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。