C言語なら、俺に聞け! <12>

このエントリーをはてなブックマークに追加
system("cls");

ゴル・・ァ・・・・・
ついに読んでもらえなかった・・
にしてもXPでLSIC試食版を使うとは、なかなか笑いの解る奴だと思った。
>>907
動くの?それ?
お前らリストの本質について教えてやらんかい!
>893-896で出尽くしました
>リストの本質
風呂に水をたっぷりいれて、鋭い刃物を用いましょう。
絵比酢手目です。

>LISPのマクロのほうが凄いわ、
どの辺が凄いの?

#青二才って昔はよくきいたな〜、どんな意味だったかしら^^;
>>912
変態っぷり
>>892
構造体にポインターが入るとリストっぽくなります。
新だおじいちゃんの遺言によると、そうらしい。
CはLinux発祥って本当ですか?
>>915
そんなことも知らなかったの(プププ

低能Winプログラマーは社会のクズ(プ
STLタン・・・
>>917
いまだにSTLをつかっている厨房発見(プププ

クソ言語C++でクソゲイツにお布施ですか?(プ
919教えたがり厨房:02/02/18 03:48
>>876
int ddiff(date *p1, date *p2) { /* バグってても知らん */
 int diff;
 if ((diff = p1->year - p2->year) == 0) {
     if ((diff = p1->month - p2->month) == 0) {
         diff = p1->day - p2->day;
     }
 }
 return diff;
}
失敗ダ〜ヨ
>>919>>876 宛てじゃなくて >>852
>>919
==0 じゃなくて ! ではダメか?

#Cには疎い通りかかりの人間
>>918
なんで C++ 使うとゲイツが関係するんだ?
別の房が背伸びした。

return !(!(p1->year - p2->year))*(!(p1->month - p2->month))*(!(p1->day - p2->day))

かなり自身が無いらしい

>>922
盆暗だからほっといてあげて!!
>教えたがり厨房
>869を見てみ!
日付以外に16データ程あるそうな
これならどうする?
return !((p1->year - p2->year) || (p1->month - p2->month) || (p1->day - p2->day));
927919:02/02/18 04:05
>>925
他のメンバなんて別に気にしなくてもいいんですが...
ddiff() は date型 について知ってるだけでいいんだよ。
928919:02/02/18 04:08
ついでに、
d1 と d2 のどっちがデカイ(未来なの)かを知りたかったら、
俺みたいに 正/零/負 の3種類の値を返したほうがいいぜ。(strcmp() と同じだな。)

同じか、違うかだけを知りたいなら >>923 や >> 926 がシンプルでいいね。
929919:02/02/18 04:12
つーか、同じかどうかなら
  return (p1->year == p2->year) && (p1->month == p2->month) && (p1->day == p2->day);
でいいじゃん。寝よう...
鬼の様にネストですか?
日本語の意味わからない<927
>931
田舎もんがっ!
>>931
それは「他のメンバも比較に必要(順序の決定に意味を持つ)」という意味?

もしそうなら、関係のあるメンバを逐一比較するより仕方あるまい。
(関数の名前も変えたほうがいいな。>>919 は日付の比較をするつもりしかない関数名だ。)
>>930 が気になるなら、return の連発と比べて好きなほうでやりゃええ。

int xdiff(xx_t *p1, xx_t *p2) { /* もはや日付ではないので構造体名も変えろや*/
int diff; /* 比較の順序にも気をつけろよ */
if (!(diff = p1->ID - p2->ID)) return diff; /* ID が最も重要なら最初に見れ */
if (!(diff = p1->year - p2->year)) return diff;
if (!(diff = p1->month - p2->month)) return diff;
if (!(diff = p1->day - p2->day)) return diff;
/* 以下同様。文字列のメンバがあるなら diff = strcmp(p1->ss, p2->ss) とでもすれ */
}
/* 大小が気にならないなら >>923 風でいけるのは同様 */
うちのVCで計測してみたんだけど
日付型程度ならmemcmpが最速
次が>876のやつ
最低が・・・>919だったよ!
日付をユリウス日でもっとけば、整数比較で話が済むだろうに。
>>935
それは出題(質問)者に言って頂戴
あら?
>日付型程度ならmemcmpが最速
日付が同じ場合の時だけだ
日付が違うと>876が最速
意外だな・・・
そりゃ意外でしょう。
>919の方が速くなるハズだけど?
うまく最適化できればね。
用途によるかもしれんが、
日付けから先に比較しれ。
日→月→年の順ってことね。
>>934
memcmp()より他の2つのほうが2・3倍速くなるんちゃう?
DWORDアラインにしてインラインでrep cmpsd。これ最強。
最強とはまたJAROちっく。
944日下部圭子:02/02/18 09:05
新スレを作りました。
すみやかな移行をお願いします。
http://pc.2ch.net/test/read.cgi/tech/1013990673/l50
>>852
time_t 使えよ (゚Д゚)ゴルァ
>>935>>945
が正解に近い。
何で日付の要素をばらばらに比較するという発想しかでてこないのか・・・

比較したい要素のうち、最小単位にマップしろ。
通常は秒にするだろうが、別に日でもかまわん。
947デフォルトの名無しさん:02/02/18 12:34
「この場合、どーすればいいですか?」の質問に
「根本から考え直せゴルァ」は、答になってない場合も多い。
>>940
>日→月→年の順ってことね。
この順番で調べたら、結局全部調べないと行けないから早くはならないと思うが。
949940:02/02/18 14:15
だから、用途によるって逝ってる。
年、月が同じで日が違う比較と、月、日が同じで年が違う比較と、どっちが多いかってよーな問題だしょ。
あ、わかった。
大小比較をするなら、全部比較しなくちゃっていう意味ね。
ゴメソ。

>>940は同じかどうかの話だったの忘れてたよ(つか、引用しれ>俺)
>947
C++なんだから、mutableなユリウス日コンテナと、validフラグを
組み合わせて、operator == の前にそのあたりをホゲれば
いいんでないのか?
952デフォルトの名無しさん:02/02/19 04:37
CLongBinaryの値はCStringとかと同じように頭から何バイトDeleteとか
できますか?できるならどのような方法でしょうか
おねがいします。
953デフォルトの名無しさん:02/02/19 05:05
delete >>952;
新スレ逝けや( ゚Д゚)ゴルァ!
http://pc.2ch.net/test/read.cgi/tech/1013990673/l50
新スレができたので、移動をお願いします。
あとはsage進行で。

C言語なら、俺に聞け! <13> By ハイソサエティーハッカー日下部陽一
http://pc.2ch.net/test/read.cgi/tech/1013990673/l50