C言語ならアタシに聞きなさい<37>
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGC言語は時代遅れなんかじゃないです。
みんな大好きなんです。このシリーズの速さがそれを物語っています。
・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
・comp.lang.c FAQ(英語の原文)
http://www.eskimo.com/~scs/C-faq/top.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART6
http://pc3.2ch.net/test/read.cgi/tech/1033207156/
・前スレ <36>
http://pc3.2ch.net/test/read.cgi/tech/1035211039/
コンパイラ、過去ログなどのリンクは>>2-5 あたり
0153デフォルトの名無しさん
NGNGまあ、間違いというか無意味だけど、
今回はstrchr()の挙動の話だから。
0154125
NGNG0155デフォルトの名無しさん
NGNG'\xff' はすなわち -1 だ。
char が符号付である処理系では。
0156デフォルトの名無しさん
NGNGそれなりってなんだよ。
キャストしなくても途中で致命的なエラーが発生したりはしないだろ。
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGなんで、あんたがヒスを起こすの?
0159デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNG1の補数表現でも-1になるんだっけ?
0162デフォルトの名無しさん
NGNGお前は、アフォか ? その時の挙動が規定されてんのか ? って聞いてんだよ。
ちなみに言っとくけど、-1 の下位8ビットが 0xff なんてことは、規定されてねーからな。
0163125
NGNG0164デフォルトの名無しさん
NGNG顔真っ赤ですよ。
0165デフォルトの名無しさん
NGNG「符号無しの処理系において」と書いてあるの見えない ?
0166125
NGNG0168デフォルトの名無しさん
NGNGchar *strchr_a(const char *str, int c)
{
c = (char)c;
while (*str && *str != c) ++str;
if (*str == c) return (char *)str;
return NULL;
}
char *strchr_b(const char *str, int c)
{
while (*str && *str != c) ++str;
if (*str == c) return (char *)str;
return NULL;
}
int main()
{
const char * str = "abcde \xFF abcde";
printf("str = %p\n", str);
printf("strchr_a = %p\n", strchr_a(str, '\xFF'));
printf("strchr_b = %p\n", strchr_b(str, '\xFF'));
getchar();
return 0;
}
0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNG「規定」というか、決まってるでしょ?
> ちなみに言っとくけど、-1 の下位8ビットが 0xff なんてことは、規定されてねーからな。
はげしく勘違いしてる予感
0171デフォルトの名無しさん
NGNG俺?もちろん厨房さ。
0172デフォルトの名無しさん
NGNG> 挙動って何?
日本語もわからんのか...。まあ、落ち着けよ。
0173125
NGNG0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG> 「規定」というか、決まってるでしょ?
どう決まってんの ?
0176デフォルトの名無しさん
NGNGププッ、捨てぜりふモードに入りましたね。
0177デフォルトの名無しさん
NGNG他人をややオカマ口調でバカバカいう125たんと
0x111とか言った香具師のせいでこんがらがってるだけだな。
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNG必死な>>125がいるスレというのはここですか?
0180デフォルトの名無しさん
NGNG{
for(;*str;str++)
if(*s==(char)c)
return (char *)str;
return NULL;
}
じゃだめなの?
0181デフォルトの名無しさん
NGNGここです。
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNGとりあえず VC++ 6.0 では、
char * __cdecl strchr (
const char * string,
int ch
)
{
while (*string && *string != (char)ch)
string++;
if (*string == (char)ch)
return((char *)string);
return(NULL);
}
となってて、char 同士で比較するようになってる。
0186デフォルトの名無しさん
NGNGなんで?
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGこういう奴は仮に正しいことを言ってても, 真っ先に白い目でみられんだよね ...
もう少し肩の力を抜けばいいのに...
0189デフォルトの名無しさん
NGNGそれだ
0190デフォルトの名無しさん
NGNGだから、ダメな例をちゃんと挙げろよ。
0191デフォルトの名無しさん
NGNG処理系定義
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNGいいじゃん。
0196デフォルトの名無しさん
NGNGだったら、この処理系では結果は不定ですって言うのもありか ?
そうなら、c = (char)c; は不要じゃん。
0197デフォルトの名無しさん
NGNGこの素直じゃないコードを書いた人の顔を見てみたい。
0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNGどこら辺がおかしいとお思い ?
0201デフォルトの名無しさん
NGNGごゆっくりお楽しみ下さい。
0202デフォルトの名無しさん
NGNG> なんでここは話題に事欠かないの。誰かネタ帳でも持ってるの。
たいした事ないネタに食いつく奴が (今回は >>125) が多いからだろ。
0203デフォルトの名無しさん
NGNGなんでわざわざ int ch としてるのか。
0204125
NGNGバカどもは徹夜で考えてなさいよ。
つーかまず質問するまえにぐぐれ。
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNG素直に一文字ずつ見ていって見つかればそこでreturn。見つからなければ(ループを抜けたら)NULLを返せばいいと思う。
0208デフォルトの名無しさん
NGNGネタ帖は>>147に。あとは誰か補完してください。
0209デフォルトの名無しさん
NGNG>>154 この辺も萌えるよ。
0210デフォルトの名無しさん
NGNGNULLは0(全ビット0)か?を忘れているぞ。
0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNG>>109
0213デフォルトの名無しさん
NGNGつか、C FAQでいいじゃん。
0215デフォルトの名無しさん
NGNG109は説明になってないよ。
0216デフォルトの名無しさん
NGNGhttp://www.catnet.ne.jp/kouno/c_faq/c_faq.html
0217デフォルトの名無しさん
NGNGじゃ、ほんとは
int *str = "abcde";
って書くのが正しいの?
0218デフォルトの名無しさん
NGNG>>180 ってこと ? 大して変わらんと思うけど。
0219デフォルトの名無しさん
NGNGそうは書けないね。
0220デフォルトの名無しさん
NGNGマクロによってstrspnのソースになったりstrpbrkのソースになったり・・・
0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNGということでOK?
0224デフォルトの名無しさん
NGNGいや、キャストは必要。
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG2の補数を採用してないCPUなんてめったにないだろ
0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNGそれって、昔の話では…
0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNGおまえC++と混同してるだろ。
Cは221で合ってる。
0232デフォルトの名無しさん
NGNG負数に2の補数を使ってないCPUなんてあるのか?
0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNGPS2のCPUとか。
0235デフォルトの名無しさん
NGNGはじめっからCは高級アセンブラって位置付けなんだから
変な期待すんな
0236デフォルトの名無しさん
NGNGモノは使いよう。
クソソースを作るやつがクソ
つーか age る程の話題ではない
0237デフォルトの名無しさん
NGNGたとえば
void hoge(char ch);
という関数があったら、intに変換されるってこと?
わけわからん。
0238デフォルトの名無しさん
NGNG解説お願いします。
0239デフォルトの名無しさん
NGNG未定義・処理系依存が多すぎるじゃん!
0240デフォルトの名無しさん
NGNGマジで?
gccとかやばいんでない?
0241デフォルトの名無しさん
NGNGn = c - '0';
みたいなのは0x80をまたいでは使えないんだね。気付かなかった。やらないけど。
0242デフォルトの名無しさん
NGNGだから、ないとまずい理由をちゃんと書け。
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGだれに返事してるの?
0245デフォルトの名無しさん
NGNGCと関係なくてスマソ
0246デフォルトの名無しさん
NGNGつーか、その話題まだ引きずるの?
0247デフォルトの名無しさん
NGNGひとりごとだ、スマソ
0248デフォルトの名無しさん
NGNG独 り 言 禁 止
0249デフォルトの名無しさん
NGNGそれは、Windowsの実装の話でしょ。
C一般の話じゃないよ。
0250デフォルトの名無しさん
NGNG前スレにstrcpy(str,NULL);やstrcpy(str,0);はOKみたいなことが書かれていたんですけど。
0251デフォルトの名無しさん
NGNGでも、一般的なPC環境はWindowsだよね
0252デフォルトの名無しさん
NGNGOS依存、処理系依存禁止
■ このスレッドは過去ログ倉庫に格納されています