- 1 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 20:41:54 ]
- C言語の*入門者*向け解説スレッドです。
初心者、初級者の方は他の質問スレのほうが良いかもしれません。 教えて欲しいのではなく宿題を丸投げしたいだけなら ↓宿題スレ↓へ行ってください。 C/C++の宿題片付けます 130代目 pc12.2ch.net/test/read.cgi/tech/1250204272/ ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ・開発環境や動作環境も晒すと答えが早いかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 53 pc12.2ch.net/test/read.cgi/tech/1253110182/ 過去スレ makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
- 116 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 16:14:18 ]
- ファイルの内容をno回表示させるプログラムのはずなんですが
1回しか表示されません何故でしょうか? codepad.org/ZdKw0YmT
- 117 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 16:17:16 ]
- >>116
ファイルを先頭から終端まで読んでしまっているので、そのままではそれ以上読むものがないという状態。 二回目以降の読み込みに先立って、ファイルの先頭から読めるようにファイルポインタを移動する必要がある。 その目的には、rewind()を使えばいい。
- 118 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 16:19:39 ]
- >>117
すばやい回答ありがとうございます
- 119 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 16:22:38 ]
- ・scanf()の使い方が危険。
せめて、scanf("%63s", fname)としよう。 ・if文中での代入は避けた方が読み易い(但し異論もあり)。 変数の寿命の点からも、file = fopen(); if (file == NULL) {}とした方がいいと思うが。 ・エラーメッセージは標準エラー出力を使おう。 ・Cのループは0オリジンがお約束。 間違いじゃないけれど、for (cnt = 0; cnt < no; ++cnt) {}とした方が多くの人が見慣れている。 ・変数の局在化のためにも、変数宣言を関数の先頭に集中させるのはやめよう。 例えば、int chはforの内側で宣言すれば充分。
- 120 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 16:28:46 ]
- >>119
詳しくありがとうございます。 サイトぐるぐる回るのと本屋立ち読みやってたので知識があいまいなんです 今度ちゃんと本買います
- 121 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 16:44:17 ]
- わざわざBASICとの違いを出すために不完全な言語仕様を作るのもおかしいよな。
- 122 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 17:22:31 ]
- >>119
for の内側で宣言するのはやめておいたほうがいいと思うよ C言語だと
- 123 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 17:24:32 ]
- >>122
なんで?
- 124 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 17:24:46 ]
- でたらめ
- 125 名前:デフォルトの名無しさん [2009/10/09(金) 17:25:37 ]
- 逝ってよし
- 126 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 17:32:27 ]
- ループの中で宣言って、ループが終わるたびに解放してまた確保してるイメージなんだけど、
実際にはどうなの?
- 127 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 17:35:30 ]
- >>126
何もしない。
- 128 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 17:36:03 ]
- 実際にはそんな無駄なことはしない
確保したまま回る
- 129 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 17:41:31 ]
- >>126
C++ならコンストラクタ・デストラクタが動くけど、Cなら何も起こらない。
- 130 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 17:56:47 ]
- ありがとう
これからは躊躇無くループの中で宣言できる
- 131 名前:122 mailto:sage [2009/10/09(金) 18:06:44 ]
- for(int i=0;i<10;i++) // C99 から OK
C言語ならこの書き方を勧めるなよ って事なんだが… C99 が一般的になったのか?
- 132 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:11:39 ]
- forの内側と言うのは、普通はfor (ここ)のことではなくfor () {ここ}のことだと思うんだ。
- 133 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:12:15 ]
- ( * ) ここ
- 134 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:12:49 ]
- >>131
どこをエスパーしたのか知らないが、そんなことは言ってない、と、思う
- 135 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:13:03 ]
- >>131
まさかとは思うが、大昔からCでもこれができることは知らなかったとは言わないよな。 int main(int argc, char ** argv) { int i; for (i = 0; i < argc; ++argc) { int j = atoi(argv[i]); printf("%d ", j); } return 0; }
- 136 名前:122 mailto:sage [2009/10/09(金) 18:13:10 ]
- すまん、ブロックの先頭の事だったか
- 137 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:14:01 ]
- と、思う( * ) ここ
- 138 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:15:59 ]
- プログラミングの上級者〜プロはprintf、scanf関数を使わないと聞きましたが、
じゃあ標準入出力はどんな関数を使ってるんでしょうか?
- 139 名前:デフォルトの名無しさん [2009/10/09(金) 18:16:04 ]
- >>137
すみません、入れても、、いいですか?
- 140 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:16:24 ]
- ( * ) ここ
- 141 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:19:25 ]
- >>138
いいえ、前者なら愛用しています。 入力には大抵fgets()、出力には大抵fprintf()を使っていますが、後者は前述の通りprintf()も使います。 また、バイナリデータを扱うケースではfgetc(), fputc()も使います。
- 142 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:21:28 ]
- fgets( * ) ここ
- 143 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:23:32 ]
-
,. '" _,,. -…; ヽ |タ l l.|: : ::::::: (i'"((´ __ 〈 } | | j: :::/: |__ r=_ニニ`ヽfハ } | | |: /: : : ヾ|! ┴’ }|トi } | j | !: : :/ |! ,,_ {' } | l |:/ :::: 「´r__ァ ./ 彡ハ、 | !| : : : : : ヽ ‐' / "'ヽ | |: : /:: ヽ__,.. ' / ヽ. | |/::::_;. /⌒`  ̄ ` ヽ\_ | |:ー'´: : / i ヽ \ | |: : : : : :
- 144 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:31:27 ]
- >>139よ。お前みたいな奴をみると、あの日のことを思い出すよ。
2001年8月25日。2ちゃんが本格的に閉鎖になりかけた日だよ。 転送量が多すぎて、費用が月700万もかかってるって発表されて、「数日中に閉鎖」って予告されてさ、 その日のうちにあっちこっちの板が封鎖されてた日だよ。 あのときのUNIX板の住人、カッコよかったんだぜ。「総力を結集」ってのはまさにああいう状態だよ。 転送量を1/3に削減しないと閉鎖、ってもんだから、新しいプログラム組んでさ、 そしたらほんの何時間かで完成したんだよ。それが聞いてくれよ、目標は1/3だったのに 1/16まで圧縮に成功しやがったんだよ。職人技なんてもんじゃねえよ、神技だよ。 でもよ、そうやって頑張る人がいた一方で、「ボクの肛門も閉鎖されそうです」とか駄スレ立ててたバカも いたわけだよ。ちょうど、今のお前みたいにな。 だからよ、俺たちは総力を結集して、お前のバカ度を1/16に圧縮しようと思うよ。 ま、圧縮後でもお前のバカ度はこの世に生かしておくことのできないレベルだけどな。 要するに俺らの力を結集してもお前を助けることができないってことだ。 わかったら、まわりに迷惑をかけないようにひっそりと死んでくれよな
- 145 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:32:41 ]
- >>144( * )ここ
- 146 名前:デフォルトの名無しさん [2009/10/09(金) 18:37:15 ]
- whileでどちらかが真なら〜ってどうやってかくの
- 147 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:45:56 ]
- while (x == 1 || x == 2) {
- 148 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:46:25 ]
- // ( * ) ここ
}
- 149 名前: ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ mailto:sage [2009/10/09(金) 18:51:41 ]
- ( 'A `)
(⊃⌒*⌒⊂) /__ノωヽ__) r-''ニl::::/,ニ二 ーー-- __ 肛門がしゃべった!! .,/: :// o l !/ /o l.}: : : : : : :`:ヽ 、 /:,.-ーl { ゙-"ノノl l. ゙ ‐゙ノノ,,,_: : : : : : : : : :ヽ、 ゝ、,,ヽ /;;;;;;;;;;リ゙‐'ー=" _゛ =、: : : : : : : :ヽ / _________`゙ `'-- ヾ_____--⌒ `-: : : : : : : ...-''"│ ∧ .ヽ. ________ / ____ ---‐‐‐ーー \: : : : ! / .ヽ ゙,ゝ、 / ________rー''" ̄''ー、 `、: : .l./ V `'''ー-、__/__r-‐''"゛  ̄ ̄ \ ゙l: : l .,.. -、、 _ ‐''''''''-、 l !:
- 150 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 18:52:43 ]
- コテかトリップ推奨
デフォルトの名無しさんをあぼんすれば解決 あらしは過疎スレでやってくれ
- 151 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 19:27:52 ]
- #include <stdio.h>
int main(){ for(int i=0; i<4;i++){ int i=0; printf ("%d", i); i++; } printf ("%d\n", i); return 0; } これの出力結果を答えられる?
- 152 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 19:31:39 ]
- コンパイルエラーになるのでは
- 153 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 19:33:54 ]
- いまどきVC6使ってるカスは氏ね。
- 154 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 19:34:17 ]
- スレ違いを覚悟で敢えて言えば、某C++コンパイラのver6ではtypoを直せばコンパイルできる。
- 155 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 19:37:38 ]
- >>151の不思議なところは
いったいどうやってそれを入力したのかということ 真性キチガイなら勝手に左手動いた・・・とかあるだろうけど
- 156 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 19:47:19 ]
- 左手?
- 157 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 19:51:58 ]
- 右手?
- 158 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 19:57:35 ]
- #include <stdio.h>
int main(){ int i; for(i=0; i<4;i++){ int i=2; printf ("%d", i); i++; } printf ("%d\n", i); return 0; } こうだな。
- 159 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 20:07:06 ]
- >>138
楽して使えるものは何でも使ったらいい 大昔は「実行ファイルが大きくなる」とか情けない理由もあったりした
- 160 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 20:10:26 ]
- for(i=0; i<4;i++){
for(i=0; i<4;i++){
- 161 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:01:27 ]
- >>144
っていうけど、gzip圧縮しただけだよな 尾ひれがついてとてもすごいことをやってるように思われてるのはちょっと。
- 162 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:03:52 ]
- 手品のタネが分かればみんなそう言うもんだw
- 163 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:05:39 ]
- 2chのソースが公開されてたけど、まさかのCだったな。
- 164 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:07:39 ]
- とりあえずインクリメント用の変数にiだのjだの付けるのはやめてくれないか?目が痛くなる。
せめて3文字以上にしてくれよ。cntとかidxとかさ。
- 165 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:11:34 ]
- iとjでいいよ。
- 166 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:11:59 ]
- ( * )ここ
- 167 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:14:52 ]
- ソースをみてて、cnt, chk, idx みたいな変数があると、懐かしい気分になるな。
- 168 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:33:02 ]
- >>162
思いつくまで大変だったのかもね。 mod_gzipをインストールする技術はなにか特別なわけではないし、 導入しているサーバは世にごまんとあった。 当時スレ見てた?それともその後のflashで知った世代か?
- 169 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:35:47 ]
- 確かに圧縮がどうこうじゃなく、それによる負荷上昇をなるべく抑える事が肝要だったな。
- 170 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:45:46 ]
- >>168
見苦しいぞ古参 外野からいつもいつも「そんなこと余裕」ってうっせーんだよ
- 171 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:47:04 ]
- ( * )ここ
- 172 名前:デフォルトの名無しさん [2009/10/09(金) 22:48:32 ]
- 世代ってなんだろ?
2ちゃんねる(笑)始めるのに年齢とか関係あるの?
- 173 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:49:09 ]
- >>170
中にいたから状況を覚えてるわけで。
- 174 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:56:53 ]
- また始まったよ、糞が。どうしようもないな
- 175 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 22:59:26 ]
- いいじゃん。
こんな糞コミュニティの古参気取っても自慢にならないし。
- 176 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 23:07:01 ]
- 便所の壁が綺麗だったことなど一度もない!
- 177 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 23:12:02 ]
- 過大評価されてる情報を鵜呑みにしてるから、そうでもなかったよと
真相を伝えてるだけじゃないの?老いると教えたがるみたいだしなー 俺はそんなのどうでもいいし、2ch使えればそれでいいw
- 178 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 23:13:17 ]
- 古参がコピペにマジレスするとは
- 179 名前:デフォルトの名無しさん [2009/10/10(土) 01:05:22 ]
- つい最近、C言語始めたものですが下記のような文章でコンパイルしても
65とか入力しても「×です。」って出るんですけどなぜでしょうか? #include<stdio.h> int main(void) { int a ; printf("数字を入力してください。 \n"); scanf("%d", &a); if( 0 <= a <= 59 ){ printf(×です。\n"); } return 0; }
- 180 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 01:10:40 ]
- >>179
if( 0 <= a && a <= 59 ){
- 181 名前:デフォルトの名無しさん [2009/10/10(土) 01:13:21 ]
- ありがとうございます。
- 182 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 01:17:57 ]
- >>179のコードもコンパイルできるのか
考えてみたらif(0<=a<=59)は まず0<=aが評価されて、0<=65だからこの式が真(1)と評価されて 次に1<=59が評価されて真(1)になるから if文の中のprintf文が実行されるってことか
- 183 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 16:40:33 ]
- int main(void)
{ char buf[1024]; char *log[1000]; int line, printline; FILE *fp = fopen("abc.txt", "r"); puts("これから読み込み\n"); for(line = 0; fgets(buf, sizeof buf, fp); line++){ log[line] = malloc(strlen(buf) + 1); strcpy(log[line], buf); } puts("これから表示"); for(printline = 0; printline < line; printline++){ printf("%s", log[printline]); free(log[printline]); } fclose(fp); return 0; } for(line = 0; fgets(buf, sizeof buf, fp); line++) って部分のfgets(buf, sizeof buf, fp)は文字列を取り出してると思うんですが、 forの終わりの条件部分に当たる箇所になぜこれを指定してるんでしょうか?
- 184 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 16:44:23 ]
- forの終わりじゃないから
- 185 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 16:49:25 ]
- >>184
kwsk
- 186 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 17:03:44 ]
- line = 0;
while(fgets(buf, sizeof buf, fp) { log[line] = malloc(strlen(buf) + 1); strcpy(log[line], buf); line++; }
- 187 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 17:05:38 ]
- >>183
>fgets >戻り値 >ファイルの終わりかファイルエラーの場合は NULL を返します。
- 188 名前:デフォルトの名無しさん [2009/10/10(土) 17:59:35 ]
- ポインタが理解できない理由を考えてみた。
ポインタは指し示すもの。値を参照したいときに利用するにとどめるべき。 unsgined char str[] = "123"; unsigned char *ptr; ptr = str; //ここでptrはstrを指し示している。 *(++ptr) = 'A'; //*を使って値を書き換えようとする時点でポインタではない。
- 189 名前:デフォルトの名無しさん [2009/10/10(土) 18:18:14 ]
- s/unsgined/unsigned/
- 190 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 18:53:04 ]
- 関数名に「$」を使ったら講師に怒られたのですが何故だめなんでしょう?
英数字とアンダーバーで無いとだめだって。 コンパイルは通るのですが何がだめなのかわかりません。
- 191 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:08:14 ]
- >>190
コンパイルできるなら別にダメじゃないよ。 ・講師が間違っている ・講師の頭が硬い ・これまでのCプログラマが築いた習慣を尊重している(でもダメだと頭ごなしに怒るのは間違い) のいずれかだろう。
- 192 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:08:28 ]
- >>190
C99からはユニバーサルアルファや処理系定義な文字が識別子に使えるので、 C89縛りがないなら使ってかまわない。
- 193 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:22:26 ]
- より規格に準拠するなら \u0024 と書くべき
- 194 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:33:43 ]
- >>186
これのほうが理解しやすいね。サンクス >>187 把握した。
- 195 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:37:16 ]
- > 講師に怒られたのですが何故だめなんでしょう?
なんにせよその場で質問しなきゃいかんよ
- 196 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:52:19 ]
- 改行したいのですがバックスラッシュが入力できません。
開発環境はVCです。 お願いします。
- 197 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:54:02 ]
- >>195
頭の悪いやつに何を訊いても意味がない。 自分で調べた方がマシ
- 198 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:55:31 ]
- \
コピペしる
- 199 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:56:12 ]
- >>196
「¥」 = 「\」 Windowsの標準的なフォントではバックスラッシュと円記号が同じキャラクタコードに割り当てられていて なおかつ、円記号しか表示されないようになっています。 エスケープシーケンス等を使用したければ、「¥」を使いましょう。
- 200 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 19:58:12 ]
- >>196
ばか
- 201 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 20:12:44 ]
- >>196
trigraph を使えばよい。 ??/ ←このように3文字書けばバックスラッシュとして扱われる。
- 202 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:17:07 ]
- まあ日本語環境での話だけどね。
- 203 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:21:22 ]
- 日本語環境ならJISコードにバックスラッシュが無いから、
本来はトライグラフを使わなければならないはずなんだよな。
- 204 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:28:51 ]
- 永遠にスラッシュ=円記号って仕様を引っ張ろうとしている
マイクロソフトの意思は理解できない。
- 205 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:32:19 ]
- なんでマイクロソフトのせいになるんだ
- 206 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:35:57 ]
- >>205
LinuxとかMacだとその仕様がもうとっくになくなってるんでしょう? っていうか最初からなかったかもしれない
- 207 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:39:32 ]
- は?
- 208 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:41:34 ]
- 英文フォントに変えてみろ
- 209 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:51:50 ]
- MSではなくJISに文句を言うべきだろう
- 210 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 21:54:57 ]
- コンソールアプリで何かキーを一つ押されたら(エンターキーが押されなくても)すぐに処理を進めるにはどうしたらいいですか
- 211 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 22:00:18 ]
- 何かキーが一つ押されるまで処理を進めないようにすればいい。
- 212 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 22:03:07 ]
- kbhit()とか
- 213 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 22:23:25 ]
- それは関係ない。
- 214 名前:デフォルトの名無しさん mailto:sage [2009/10/10(土) 22:24:18 ]
- conioのgetchでできましたありがとうございました。
- 215 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 00:24:50 ]
- グローバル変数使いまくりのプログラムをマルチスレッド化しようと思って
まずグローバル変数を構造体に纏めて関数に構造体のポインタを渡して処理するよう改造したんですが 速度が約半分になってしまいました。 まだマルチスレッド化はしておらずシングルスレッドでの比較です。 何か改善する方法があれば教えてください。
- 216 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 00:47:41 ]
- プロファイリングしてどの部分で時間食ってるのか調べる方法をググれ。
|

|