1 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 13:10:57 ] このスレは標準Cのみの限定スレです。 まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。 質問する前には最低限検索を。 エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。 C FAQ 日本語訳 www.kouno.jp/home/c_faq/ Cプログラマ必読 ・プログラミング言語C(通称 K&R) www.amazon.co.jp/exec/obidos/ASIN/4320026926/250-7563469-9920244 他の過去ログはここに nssearch.hp.infoseek.co.jp/clang/ 前スレ 【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131 pc11.2ch.net/test/read.cgi/tech/1170338926/ GUIなどの標準Cではできない事の質問、ソース丸投げ、宿題、書籍 は 専門の別スレッド↓があるのでそこへさようなら。 【初心者歓迎】C/C++室 Ver.42【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1188748806/ C/C++の宿題を片付けます 95代目 pc11.2ch.net/test/read.cgi/tech/1187944110/ 【このスレ住人としての心得】 ビットシフトはなんの役に立つのでしょうか でググれ
486 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 18:24:22 ] 関連が無いものを複数いっぺんに聞くなよ・・・ あと環境依存のやつはそれなりのスレで。
487 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 18:28:15 ] >>483 > ネット上のボタンをクリックしたり コメント枠に書き込んだり > するのはどうやってプログラムするのですか? ブラウザがどういう仕組みで動いているのかを調べれば、どうやってプ ログラムするかもわかるようになるよ。HTTP とか HTML とかね。
488 名前:ニャン [2007/11/30(金) 18:28:18 ] すみません いろいろ困ってたんで せめて1番上だけでも答えてください お願いします ところで 環境依存ってなんですか?
489 名前:ニャン [2007/11/30(金) 18:30:40 ] ブラウザってどうやって見るのですか?
490 名前:ニャン [2007/11/30(金) 18:36:20 ] 俺 コマンドプロンプト内で文字を表示させるくらいまでしか プログラムできないんで もっと詳しく教えて下さい
491 名前:ニャン [2007/11/30(金) 18:45:33 ] その友達に訊けばいいんじゃないですか。
492 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 18:48:52 ] まず >>1 を読め 読み終わったら >>1 を読め 一回休んで、もう一度 >>1 を読め ついでに >>2 も読んでおけ
493 名前:ニャン [2007/11/30(金) 18:49:23 ] 教えてくれないんです
494 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 19:36:43 ] これはひどい
495 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 20:01:15 ] 9,6,4,7,12,14,1,11,10,15,3,5,8,13,2を小さいものから順に並び替える関数です。 0 #include<stdio.h> 1 void quicksort(int x[],int n){ 2 int m; 3 int *pa=x+2. *pz=x+n 4 if(n==2){ 5 if(x[1]>x[2])m=x[1],x[1]x[2],x[2]=m; 6 return; 7 } 8 while(pa<pz){ 9 while(pa<=x+n && *pa<x[1])pa++; 10 while(pz>=x+2 && *pz>=x[1])pz--; 11 if(pa<pz)m=*pa, *pa++=*pz, *pz--=m; 12 } 13 if(pa>x+2)m=x[1],x[1]=*(--pa),:pa=m; 14 if(pa-x>2)quicksort(x,pa-1-x); 15 if(x+n-pz>1)quicksort(pz.x+n-pz); 16 } これの8〜12行目の部分は、9行目で前から数列の6,4,7,12まで進み、 10行目で後ろから2まで進み、12と2を交換するという意味であってますか?
496 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 20:04:18 ] >>495 ですが、もしかしてスレ違いですか?
497 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 20:15:03 ] そうです 次の患者さんどうぞ
498 名前:デフォルトの名無しさん [2007/11/30(金) 22:40:30 ] Cで動的初期化というか、やりたいのは以下のような感じなんだが、 いいアイディアない? あるヘッダファイルに以下のような定義がある。 typedef const struct ID_ { uint32_t a; uint8_t bc[2] } * ID; extern const ID ID_HOGE; んで、実体は以下のような感じ。ちなみにID_HOGE_は公開されていない。 static const struct ID_ ID_HOGE_ = {0xaaaa, {0xbb, 0xcc}}; const ID ID_HOGE = &ID_HOGE_; んで、このIDと名前みたいなヤツの対応を静的に書いておきたい。 struct { ID id; char *name; } MAP; static struct MAP map[]={ {ID_HOGE,"hoge"}, ... }; だが、動的な初期化が出来ないってコンパイラにはじかれてしまう。 どうしたらいい?ボスケテ天才プログラマー。
499 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 22:47:26 ] static struct MAP map[]={ {&ID_HOGE_,"hoge"}, ... };
500 名前:デフォルトの名無しさん [2007/11/30(金) 22:52:31 ] >>499 いや、上にも書いたとおり、ID_HOGE_は公開されていなくて、 実体があるソースコードも書き換え不可なんですよ・・・。
501 名前:デフォルトの名無しさん [2007/11/30(金) 23:23:44 ] 今日からC言語の勉強を開始しようと思っていますが、初心者でも使いやすい コンパイラーあれば、教えて頂けないでしょうか? ちなみにVisual C++ 2005 Express Edition持ってます、使えますでしょうか?
502 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:28:12 ] つ『14歳からはじめるC言語わくわくゲームプログラミング教室』 www.amazon.co.jp/gp/product/4899771517/ Borland C++使ってる。
503 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:29:45 ] >>500 やりたいこと、よくわかんねけどさ。 こうじゃあかんの? struct MAP{ const ID *id; // <ポインタに char *name; }; static struct MAP map[]={ {&ID_HOGE,"hoge"}, }; // 使用例? int main() { printf("%x\r\n", (*map[0].id)->a); return 0; }
504 名前:デフォルトの名無しさん [2007/11/30(金) 23:39:05 ] >>502 まだまだ軍資金がないもんで、フリーでできるものを願いします
505 名前:デフォルトの名無しさん [2007/11/30(金) 23:42:27 ] 最長共通部分列(LCS)問題について教えてください。 ある座標系が2つ(x1,y1),(x2,y2)が存在して、その座標系に それぞれ10個の要素があったとします。各要素のx1,もしくはx2座標 とy1,y2座標に重複はないものとします。 要素 1 2 3 10 ex 座標系1・・・(x1,y1)={(4,3),(2,6),(5,9),,,,(10,1)} 座標系2・・・(x2,y2)={(1,5),(7,5),(9,8),,,,(3,4)} この2つの座標系において要素間の位置関係が等しくなっている全ての要素の のなかで一番要素数が多いものを割り出す。プログラミングは どのように組めばいいのでしょうか?よろしく願いします。
506 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:48:20 ] >>501 >>1-2 >>505 >>1-2
507 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 01:34:09 ] >>498 そのやりかたではできない。 どうせmapは変更しないのだろうから、ID構造体を隠蔽してそのポインタを提供するのではなく MAP構造体を隠蔽してそのポインタを提供する方式にするんだ。 // id.h typedef struct{ uint32_t a; uint8_t bc[2] }ID; typedef struct{ const ID *id; const char *name; }MAP_; typedef const MAP_ * const MAP; extern MAP map; // id.c static ID ID_HOGE_ = {0xaaaa, {0xbb, 0xcc}}; static MAP_ map_[]={ {&ID_HOGE_,"hoge"}, ... }; MAP map=map_; これでいけるはず
508 名前:デフォルトの名無しさん [2007/12/01(土) 02:04:09 ] >>507 どこがMAPを隠蔽してるんですか?
509 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 03:12:18 ] >507 hogeの実体部分のソースは変更不可だってんだからそれは駄目だろ 静的な初期化はあきらめて、mainの頭で初期化するか map要素を返す関数を用意してそれが最初に呼ばれたときに初期化するかしかないな
510 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 13:01:43 ] /* map.h */ ID map_ID(int); const chat * map_name(int); /* map.c */ struct { ID *id; char *name; } MAP; static struct MAP map[]={ {&ID_HOGE,"hoge"}, ... }; ID map_ID(int n) { const chat * map_name(int n);
511 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 13:03:25 ] 途中送信しちった /* map.c */ struct { ID *id; char *name; } MAP; static struct MAP map[]={ {&ID_HOGE,"hoge"}, ... }; ID map_ID(int n) { return *map[n].ID; } const chat * map_name(int n) { return map[n].name; } これでいいんじゃ?
512 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 16:10:51 ] >505 もうちょい正確にやりたいことを書かないと無理だと思うんだな。 何がしたいか正確には分からないけど多分 LCS とは別物だと思う。 >重複はない 座標系1の点 { (x10, y10), ... , (x19,y19) } 座標系2の点 { (x20, y20), ... , (x29,y29) } で、どう重複がないのよ?i ≠ j なら x1i ≠ x1j って言ってるの? >要素間の位置関係が等しくなっている全ての要素ののなかで一番要素数が多いもの 座標系1 に対して並行および回転移動を行った際、座標系1の点と座標系2の点とが一致する数が最大となる移動時での 一致する点の組みを選び出せばいいの?
513 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 17:47:56 ] スレの趣旨から外れた質問は流せって
514 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 22:41:50 ] プリプロセッサってたいがい #define hoge って書いてあるけど、インデントやスペースを挟んだ # define hoge みたいな書き方も規格的にOKですか?
515 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 22:42:09 ] うん
516 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 23:16:53 ] 字下げするときはそうすることが多いよNE
517 名前:デフォルトの名無しさん mailto:sage [2007/12/01(土) 23:54:57 ] ありがとうございます。 自信を持ってインデントします。
518 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:45:27 ] >>511 ポインタのポインタをコンパイラ制限のために、さらにポインタに するなど受け入れがたいため却下。 IDの比較はどうする?ポインタのポインタのポインタだから、 値を比較するには、ポインタのポインタn・・・とか、 ポインタのポインタが静的に定義されているから、 ポインタのポインタのアドレスで比較すればいいとか、 コピーするにはうんぬんとか。 ヤッテラレッカボケ!
519 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 01:52:34 ] 可能なら、動的初期化できるC++としてコンパイルすればほぼ498のコードで通る。 これだけのためにそうするのは少々無駄遣いという気もするけど。
520 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 03:07:50 ] >518 IDはポインタだからID *はポインタのポインタどまりだろうが お前はまず教科書読み直せ
521 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 03:11:31 ] >>520 アゲアシとってナニが楽しいのかね。そうやって 見下すことでオノレの存在価値を認識する作業を繰り返す 人生なんてオワリにしたほうがいいよ。
522 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 03:18:59 ] >>521 こんなところで見下されてる人生なんてオワリにした方がいいよ
523 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 03:36:44 ] このあいだ関数プロトタイプ使いたくないとぬかしてたボケと同じ臭いがする
524 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 10:12:37 ] >>518 その程度で受け入れ難いなら、まず「C言語を使う」という選択肢を捨てるべき。 C言語しか使えないならC言語の制限は受け入れるしか無いだろ。jk
525 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 10:34:24 ] >>524 同意。言語の制限が枷になるなら言語選択からやり直すべき。
526 名前:デフォルトの名無しさん mailto:sage [2007/12/02(日) 11:21:12 ] Dおすすめだにょ!
527 名前:デフォルトの名無しさん [2007/12/07(金) 12:25:18 ] 整数型のオーバーフローについて質問です。符合無し型ではラップすると規定されていて、 符号付き型では未定義動作になると理解しました。 その場合、以下のようなコードは「ラップする」と「未定義動作」のどっちになるんでしょうか? unsigned char c = 1; c += INT_MAX; 期待する動作としては符号無しのルールに従ってラップした結果が c に残って 欲しいんですが、 c = c + INT_MAX の右辺の c は int (符号付き)に格上げされて しまうので、未定義動作という解釈もできるように思います。 後者の場合、未定義動作を避けるためには明示的に c = (unsigned int)c + INT_MAX と書く必要があることになってしまいそうですけど、 ちょっと意味不明なコードになってしまいます。
528 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 12:38:32 ] c += (unsigned int)INT_MAX;
529 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 21:00:23 ] c = (unsigned char)((unsigned int)c + INT_MAX) 無理して規格の解釈ギリギリのコード書く必要もあるまい。
530 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 09:39:13 ] もしかして下線1文字 _ って予約識別子ではない?
531 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 10:45:41 ] 予約識別子は __func__ だけじゃないかな。 予約マクロにも下線二文字か下線+英字と最低二文字を想定しているっぽいし、 下線一文字は処理系で特別に解釈されるようなことはないと思う。 普通に変数名としても使えるし。
532 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 11:51:47 ] 下線1文字 _ は ・二重下線を含む ・下線 _ で始まり英数文が続く どちらのルールにも当てはまらない。 だから「予約識別子ではない」だろうね。 >予約識別子は __func__ だけじゃないかな。 > >下線一文字は処理系で特別に解釈されるようなことはないと思う。 >普通に変数名としても使えるし。 たとえ予約識別子だろうと "普通に変数名として使える" よ。 "処理系で特別に解釈される" のではなく "処理系が既に使っている可能性がある" 名前。
533 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 12:06:58 ] 何を以って普通と言うかはわからないが、未定義の動作が伴うことは"普通に変数名として使える"と言えるのか? 処理系が予約している識別子を他の予約されていない識別子と同様に扱えたとして 処理系依存としか言えない。
534 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 12:52:31 ] C99しか見て無いけど。 >>530 ファイルスコープは予約されてるっぽい。 >>531 マクロ名も識別子らしい。 自分から進んで規格見ないから勉強になるわぁ。 C89はシラネ。 どっかで見れないかね? お取り寄せメンドイ。
535 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 13:17:21 ] >>530 _ はC89の頃から大域名前空間では予約済み。 >処理系が予約している識別子を他の予約されていない識別子と同様に扱えたとして というか、処理系は予約識別子も予約されていない識別子も同様に扱う。 名前の上書きが問題になるのは識別子が予約されているかどうかとは別の問題。 例えば char hoge[]="hoge"; ………… hoge[10] = '\0'; ってコードは言うまでもなく未定義で正しくないコードだが、 それでも "普通に書ける" コードではあろう。
536 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 13:19:43 ] "普通"の定義によるんじゃない? コンパイルが通るだけで普通なのかってことになるだろ
537 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 13:37:38 ] そこはコンパイラの説明書を読めとしか。
538 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 14:50:48 ] イマサラだけど「普通」って文化の問題だから、 規格と比べて云々しても答え出ないっしょ。 肯定も否定もでけまへん。
539 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 15:36:42 ] 根本的に間違ってる。 コンパイルできるかどうかも処理系依存だということを忘れてる。 よって処理系に依存しない書き方が普通。
540 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:06:01 ] C89のコードが普通のところもあれば C99のコードが普通のところもあれば gcc依存のコードが普通なところもあれば 言えばキリが無いよ。 何が普通かなんて、語るだけナンセンス。
541 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:30:37 ] このスレでは普通についての議論はしません
542 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:33:40 ] 予約識別子を予約されていない識別子と同様に扱うことが普通かどうかって話だろ? とりあえず避けるわな、普通。
543 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 16:59:17 ] ・赤信号だろうが普通に渡ることはできる。だが普通は渡らない。 ・予約識別子は普通に変数名として使える。だが普通は使わない。 どっちも正しい。 二人とも普通の指してる先が違うんだ。 それに気づかなきゃ話が噛み合うわけがない。
544 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 17:01:06 ] 予約識別子を普通に扱うってのはコンパイラが?プログラマが?
545 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 17:41:55 ] >>543 例え話に例え話で返すと話がズレがちなんで嫌なんだが、ちょっと言いたい。 >赤信号だろうが普通に渡ることはできる 規約違反。 精々「横断歩道の無い道を渡る」ぐらいのものだと思う。 車線無しならOK、対向1車線でもまぁ、対向2車線・・・うーん。 という感じで、程度問題ではなかろーか。
546 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 18:07:53 ] 本筋とズレたところで例え話の粗探ししてどうすんの。 そういう話じゃねえべ。
547 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 18:25:32 ] 細かい所に拘りたいのも本質さえ掴めれば良しとするのも人それぞれ。 何が普通かと同じで結論は出ません。
548 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 18:33:52 ] コンパイルできるのは処理系依存だってことはみんな理解して発言してるんだよな?
549 名前:543 mailto:sage [2007/12/08(土) 21:47:05 ] 予約識別子は constraint ではないのでCのコードとしては "普通" に使える識別子である。 <= 文法上の問題 ただし、そのようなコードをコンパイルする場合については undefined である。 <= 意味上の問題 だから、そういう書き方は "普通" はしない。 <= 道徳上の問題 「使えない」のか「使ってはいけない」のか「使わない」のかでは全く意味が違う。 だから話が噛み合っていない。
550 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 21:51:40 ] 道徳というより実作業上の問題じゃね?
551 名前:543 mailto:sage [2007/12/08(土) 21:55:55 ] >道徳というより実作業上の問題じゃね? ん、そっちの方が適当だね。
552 名前:543 mailto:sage [2007/12/08(土) 22:09:08 ] あと「誰が」普通に扱うのかっていう主語の混乱もあるな。 俺的に分類してみた。 >>531 ?? (主語:プログラマが) >>532 文法 (主語:処理系が) >>533 意味 (主語:???) >>535 文法 (主語:処理系が) >>539 意味+作業 (主語:プログラマが) >>540 文化 (主語:プログラマが) >>542 作業 (主語:プログラマが) >>548 意味 (主語:???)
553 名前:デフォルトの名無しさん mailto:sage [2007/12/08(土) 22:42:44 ] >>549 話が噛み合ってないとか以前に、自分の発言の意味を自分自身理解してるのか? 傍目にはお前が一番混乱してるぞ。 電波撒き散らすな。
554 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 03:07:37 ] >>553 は>>549 の何が気に入らないんだ? 真っ当な指摘だと思うがね。
555 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 11:12:45 ] さあこんなことを言われてしまった>>553 は何がどうどういった根拠で >>549 が混乱しているのか詳しく説明するか、逃げるかふたつにひとつになってしまいました
556 名前:デフォルトの名無しさん [2007/12/17(月) 04:56:43 ] なんで、mallocは1引数関数なのにcallocは2引数なんでしょうか?
557 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 09:43:27 ] >>556 calloc()を1引数にしたら存在意義がほとんどないじゃないか。
558 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 11:18:15 ] ゼロクリア
559 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 11:23:22 ] 柳家calloc
560 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 16:12:57 ] callocは要らない子
561 名前:デフォルトの名無しさん [2007/12/17(月) 16:42:51 ] >>557 なんで?
562 名前:デフォルトの名無しさん [2007/12/18(火) 03:45:39 ] mallocで確保したメモリを、100x200の2次元配列だとおもってa[m][n]のようにアクセスしたいので、 int* p = (int*)malloc(100*200*sizeof(int)); ... typedef int A[100][200]; A* a = (A*)p; のようなコードを書いたのですが、これだと使うときに(*a)[0][0]のように*が必要になってしまいます。 どうにか、*を使わずにa[0][0]のように書く方法はないでしょうか。 C++はNGです。
563 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 03:56:03 ] >>562 int (*a)[200] = (int (*)[200])malloc(sizeof(int[200]) * 100); typedef int A[200]; A* a = (A*)malloc(sizeof(A) * 100);
564 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 08:57:51 ] int (*a)[200] = malloc(sizeof(int[200]) * 100); これでいい
565 名前:デフォルトの名無しさん [2007/12/19(水) 23:21:25 ] VC++のstrstr系関数って、KMP法とかBM法で実装されてるんでしょうか? それと、もし自分で実装するとしたらですが、KMPとBMのどちらが評判よいですか?
566 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 23:35:28 ] お帰りください
567 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 23:44:40 ] たぶんそんなのは使っていないと思う。 あまりにも短い文字列などだとかえって時間かかるから。
568 名前:デフォルトの名無しさん mailto:sage [2007/12/20(木) 02:59:48 ] 絶対使ってない、と言い切れるね。 1回しか使わない探索にテーブルのセットアップとかが無駄と言うのもあるけど そもそも、そういうスキップする(全文字走査しない)アルゴリズムは テキストの長さがあらかじめ判ってないと使えない。 そして、(strstrに渡す)文字列の長さをstrlenで調べてからBM法を使うくらいなら 長さを求める'\0'探しのついでに力任せ探索をするほうがずっとまし。 たとえ同じ文字列を何回も探索するような、初期化が必要ないケースでも。
569 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 00:21:03 ] ビット操作の練習をしています。符号あり2の補数表現の整数の符号を反転するコードは、 x=(~x)+1;とx=~(x-1);のどちらが適切でしょうか?
570 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 01:38:53 ] x=-x;
571 名前:何を以って適切とするかが提示されていないから答えようがない罠 mailto:sage [2007/12/21(金) 01:39:24 ] >>569 x *= -1;
572 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 04:13:19 ] このスレ的には2の補数表現を仮定してる時点で間違い
573 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 09:58:35 ] >>572 は誰に言ってるのか
574 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 10:09:03 ] >>573 >>570-571 ではなかろうか
575 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 10:12:04 ] 俺は>>569 だと思った
576 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 11:02:23 ] >>569 xがunsignedならどっちも同じになるから、どっちでもいいよ。
577 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 11:52:01 ] >>576 符号ありと書いてあるが。
578 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 11:56:24 ] んー微妙だなw
579 名前:デフォルトの名無しさん [2007/12/21(金) 13:00:08 ] 構造体の定義で、たまに struct X { ... char tag[1]; } とか書いてあるものがありますが([0]の場合もあり)、これは何でしょうか?
580 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 13:08:33 ] >>579 www.kouno.jp/home/c_faq/c2.html#6
581 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 13:11:49 ] C FAQ 次スレからテンプレに入れよう
582 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 13:13:08 ] >>581 >>1 にあるだろ。テンプレ嫁
583 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 13:15:32 ] あ、見落とした m(__ しかし、それが何であるかの説明にはなってないなw しかしこのスレではスレ違いなので、 スレ立てるまでもない質問のほうに答えは書いておく。
584 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 13:57:03 ] どうせ規格の話になるんだし、ここで答えてもよかっただろうに。 分散して見づらくなる。
585 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 14:23:06 ] 心得の意味がわかってないやつがいるなぁ 「わざとスレ違いな質問をする荒らしがいるのでそういうのは無視するか軽く流してください」 次からこう書かなきゃダメか?
586 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 14:34:52 ] 何でスレ違いなのか、さっぱりわからない