トップページtech
1001コメント301KB

C言語なら俺に聞け(入門編)Part 116

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/06/14(金) 20:22:05.73
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 115
http://toro.2ch.net/test/read.cgi/tech/1368444993/
★過去スレ
http://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
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 164代目
http://toro.2ch.net/test/read.cgi/tech/1370255305/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
  # サイズが大きい場合はアップローダ等を利用してください。
http://codepad.org/C/C++の宿題片付けます 165代目
http://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
0176デフォルトの名無しさん2013/06/23(日) 02:52:53.57
>>175みたいに推測でものを言うksって何なの?
キチガイ女の集まるメンヘラ板ならまだしもム板なのに
0177 ◆QZaw55cn4c 2013/06/23(日) 02:53:59.29
>>176
Knuth の聖書を読め推測ではなくて「当たり前」
0178デフォルトの名無しさん2013/06/23(日) 10:13:01.61
「当たり前」では無いがglibcのqsortが基本はマージソートなのは良く知られている。
知らないのは素人
0179デフォルトの名無しさん2013/06/23(日) 10:42:54.64
マージはメモリ効率悪いだろ
0180デフォルトの名無しさん2013/06/23(日) 10:58:26.44
qsort以外のソートを自作してはならないという不幸な時代に生まれさえしなければ
0181デフォルトの名無しさん2013/06/23(日) 11:21:32.00
不安定なソートは好きじゃない
0182デフォルトの名無しさん2013/06/23(日) 11:48:10.77
>>179
そう思うんなら、glibcの開発mlに乗り込んで喧嘩売って来いよ。
0183デフォルトの名無しさん2013/06/23(日) 11:53:07.46
>>182
マージソート知らないのか?マージソートはメモリー効率悪いよ。
0184デフォルトの名無しさん2013/06/23(日) 11:59:08.52
>>183
「基本は」って書いただろ。ソース読んでから言いがかりつけろよ。
0185デフォルトの名無しさん2013/06/23(日) 12:04:05.74
>>184
基本はとお前が書こうか書くまいが、マージソートはメモリー効率悪いよ。
知らなかったんだろ?素直に認めろよ。
0186デフォルトの名無しさん2013/06/23(日) 12:16:57.54
>>185
お前本当に頭悪いな。マージソートがメモリーを沢山使うのは常識だが、glibcはそれでも「効率」はマージソートの方がいいと判断して基本(メモリー潤沢な場合)はマージソートを採用している。
それに対して周回遅れの言いがかりつけんじゃねー

効率: 機械から得られる有効な仕事が,それを得るために機械に加えたエネルギーに対して占める割合をいう。
0187デフォルトの名無しさん2013/06/23(日) 12:18:45.53
2chは潤沢なリソースを誇るので
このような非効率なプロレスに利用しても何ら問題ない
0188デフォルトの名無しさん2013/06/23(日) 12:19:37.26
>>186
だからマージソートはメモリー効率悪いだろ。
0189デフォルトの名無しさん2013/06/23(日) 12:30:05.35
>>188
効率とは使用するリソースに対する得られる効果。
使用するメモリーに対して期待する効果が大きいと判断したから、マージソートが採用されている。
0190デフォルトの名無しさん2013/06/23(日) 12:36:42.61
何の知識もないので、1からCを始めるのにおすすめのサイトを教えてください。
0191デフォルトの名無しさん2013/06/23(日) 12:37:12.55
>>189
詭弁だな。
0192デフォルトの名無しさん2013/06/23(日) 13:06:38.64
>>191
>>173の周回遅れのツッコミが、とても痛い事にきづいたか?
0193デフォルトの名無しさん2013/06/23(日) 13:15:38.44
そんなんだから女にモテないんだよおまえら
0194デフォルトの名無しさん2013/06/23(日) 13:21:18.35
>>193
マージソートはメモリー効率悪いよね。
0195デフォルトの名無しさん2013/06/23(日) 13:27:34.58
自分は富豪的プログラミングしてるのにメモリ効率とか言い出すアホいるよなw
0196デフォルトの名無しさん2013/06/23(日) 13:32:19.18
いいんだよ そのほうがカッコイイんだよ
ケータイやゲーム機の色にこだわるのと一緒だよ
わかるだろ?
0197デフォルトの名無しさん2013/06/23(日) 13:35:15.93
メモリー効率が悪いことが原因で、処理が出来なかった経験があるのかな?
0198デフォルトの名無しさん2013/06/23(日) 13:38:27.53
富豪的プログラミングをしているつもりが、
富豪ではないからスパコンやフルカスタムが必要になると詰むんだよな
0199デフォルトの名無しさん2013/06/23(日) 13:56:30.58
メモリかつかつな状況下で 標準の qsort を選択するものなの?
0200デフォルトの名無しさん2013/06/23(日) 14:05:57.13
そういうマシンでソートするのが間違い
0201デフォルトの名無しさん2013/06/23(日) 16:31:54.78
>>197
「マージソートのメモリー効率がわるいこと知ってる俺 SUGEEE、おめーらそんな事知らない
だろう」って事だろ。

で、「ハァ、(そんな事誰でも知ってるし) それがどうかしたのか」と言われて、逆切して粘着。

まあ、良くある話。
0202デフォルトの名無しさん2013/06/23(日) 17:32:09.05
>>201
全然違うわw

「マージはメモリ効率悪いよね(ぼそ)」
「glibcはなんたらかんたら!!!」
「マージはメモリ効率悪いよ(はっきり)」
「glibcは頑張ってんだ!!!」

こういう話です。
0203デフォルトの名無しさん2013/06/23(日) 17:32:13.12
マージソートは安全じゃないからね
メモリを確保できない場合は回復不能なエラーになる
クイックソートならそうはならない
0204デフォルトの名無しさん2013/06/23(日) 17:41:24.79
>>202
> 逆切して粘着。

君、もういいよ。
0205デフォルトの名無しさん2013/06/23(日) 17:53:43.59
>>203
C言語を使用している人間の発言とはとうてい思えない。
mallocがNULLを返したらクイックソート使ったらいいじゃん。
回復余裕じゃん。
0206デフォルトの名無しさん2013/06/23(日) 17:55:30.17
>>205
そんな内容でいちいちageんな
0207デフォルトの名無しさん2013/06/23(日) 17:56:48.64
Qsort killer は手に余るってことでおk?
0208デフォルトの名無しさん2013/06/23(日) 18:02:12.98
>>202
全然ちがうわ
オレ: glibcは(メモリ十分なら)基本マージソート
周回遅れ: マージソートはメモリ効率悪いだろ
0209デフォルトの名無しさん2013/06/23(日) 18:03:37.13
>>205
バカなやつだな
メモリ確保できたときの無駄を許せるなら
おまえはCをやめてVBAとかもっと手頃な言語やった方がいい
はっきりいって向いてないよ
0210デフォルトの名無しさん2013/06/23(日) 18:07:57.66
>>209
なにをゆってるんだ。回復不能は誤りだろ、それについては認めろよ。
バカはお前だハゲ。はい勝利。
0211 ◆QZaw55cn4c 2013/06/23(日) 18:25:41.64
誰もシェルソートを愛してくれないのですか(泣)
0212デフォルトの名無しさん2013/06/23(日) 18:30:24.94
>>210
誤りじゃないよ
メモリをいくら確保すればメモリが足りてるかテストできない
さらにテストしたメモリを解放してもすぐに同じだけ全て再利用できるとは限らない
0213デフォルトの名無しさん2013/06/23(日) 18:34:51.85
>>212
は?何言ってんだバーカ。はい論破。
0214デフォルトの名無しさん2013/06/23(日) 18:36:55.67
>>211
シェルソートは難しいぞ。お前実装できんの?
0215デフォルトの名無しさん2013/06/23(日) 19:14:27.63
とこのように
あるごりずむを覚えたての自称上級者が延々とオナニーを始めるので
ソートの話題をふるのは禁止です
0216デフォルトの名無しさん2013/06/23(日) 19:19:05.65
別にソートを実装してくれというわけじゃないんだが
争ってる奴らはバカなんだろうな
0217デフォルトの名無しさん2013/06/23(日) 19:20:07.80
ゲーム製作をしたくてプログラムを学ぼうと思うのですが、
MicrosoftVisualC++って2012使ったほういいんですかね?
2010までしか説明していないサイトが多いのでどうすればいいのか迷ってます
0218デフォルトの名無しさん2013/06/23(日) 19:21:29.99
ゲーム作るならMinGWがオススメだよ
0219デフォルトの名無しさん2013/06/23(日) 19:22:11.90
プログラムだけできても絵が描けないとゲームはできないよ。
0220デフォルトの名無しさん2013/06/23(日) 19:25:49.97
それは素人の発想
ゲームは本来文字情報だけで十分なんだよ
0221デフォルトの名無しさん2013/06/23(日) 19:30:29.06
2010と2012の二択だったらどうなります?
0222デフォルトの名無しさん2013/06/23(日) 19:37:29.52
>>217
ハードやれ
とりあえずドラム叩きあたりからでいい
人を楽しませるには自然現象の全てを使い切れ

ここを忘れた連中こそゲーム業界のやませだ
0223デフォルトの名無しさん2013/06/23(日) 19:40:45.89
何を作りたいかによるけど
まずはツクールとかウディタとか
そういうお手軽で不自由なツールをさわっておくのがよい
0224デフォルトの名無しさん2013/06/23(日) 19:42:23.77
>>217
どんなゲーム作るの?
勉強してもFF13みたいなやつは個人では無理だと思うよ
0225デフォルトの名無しさん2013/06/23(日) 19:44:11.70
>>220
じゃあ文字情報だけのゲームで食っていけるだけの利益出してみろや
ドラクエ以上の本数売ってみろや

何も知らない 素人 が知ったかすんな
0226デフォルトの名無しさん2013/06/23(日) 19:53:34.40
プログラムだけできても絵が描けないと売れるゲームはできないよ。
0227デフォルトの名無しさん2013/06/23(日) 19:57:10.34
作曲も大事だね
0228デフォルトの名無しさん2013/06/23(日) 19:58:17.64
絵を描くにも、ドッターみたいな特殊技能がいるし
0229デフォルトの名無しさん2013/06/23(日) 20:02:55.99
>>225
バカか?
商業ゲームの話は誰一人してないぞ
レスの流れを読むぐらいのことはしてから喋れよ
0230デフォルトの名無しさん2013/06/23(日) 20:12:57.44
>>224
ツクール的な簡易グラでやりたいと思ってます
もしかしてRuby勉強したほうがいいんですかね
0231デフォルトの名無しさん2013/06/23(日) 20:13:54.58
>>229
こいつ馬鹿か?
商業ゲーム作ってる企業は面白いゲーム作ろうと思って作ってんだよ
しかも全員プロだ
そのプロ共が30年近くかけてたどり着いた回答が今の美麗なグラフィックをバリバリ使った
音楽もオーケストラ並のゲームだ
チャラチャラプログラマ気取りで2chに書き込んでるお前のような奴の言うことより
30年近い実績の上に成り立ってる商業ゲームのほうがよっぽど説得力があるんだよ
0232デフォルトの名無しさん2013/06/23(日) 20:24:32.40
>>231
消費者はそう思ってない
またグラフィックだけのクソゲーか
と飽き飽きしてる
それも当然だグラフィックしか売りがなければ
暫くすればすぐによりグラフィックが優れたゲームが作られる
無意味なんだよ今の業界がやってる仕事はね
誰の記憶にも残らないすぐに最新作に上書きされる為だけにゲームを量産している
あまりにも不毛だ
0233デフォルトの名無しさん2013/06/23(日) 20:27:12.90
フルオーケストラ、最後に聴きに行ったのは今年の2月だったかな
1回きりでも諭吉使う価値あるんだよねえ

ところでゲーム屋さん、何がどのようにオーケストラ並みなの?
作曲してる人たちやDAC作ってるハード屋さんの仕事は、諭吉に匹敵すると思うんだけど
えーと・・・
0234デフォルトの名無しさん2013/06/23(日) 20:33:16.90
>>230
ツクールレベルならRubyとかスクリプト言語で十分。
だけど将来もしかしたら3Dやるかも、とかだったらやっぱりC/C++のほうがいいね。
あなたにデニスリッチーの加護があらんことを。
0235デフォルトの名無しさん2013/06/23(日) 20:37:09.56
>>232
いや、だからお前文字情報だけのゲーム作って売ってみろって
お前の言ってることが正しければみんな文字情報ゲー買うだろ
今どんな生活してるか知らんけど、普通のリーマンだとしたら生活水準かなり上がるぞ
お前の言ってることが正しければリスクもない
0236デフォルトの名無しさん2013/06/23(日) 20:59:00.58
売れるゲームのはなしなんか誰もしてないぞ
>>226 の皮肉がわからない馬鹿一名を除いて
0237デフォルトの名無しさん2013/06/23(日) 21:09:25.88
>>234
ありがとうございました。
0238デフォルトの名無しさん2013/06/23(日) 21:21:51.52
>>233
ピンキリだけどゲームでも腕のいい作曲家だと年収もオーケストラやってる上手い演奏家と同じくらいだよ。
0239デフォルトの名無しさん2013/06/23(日) 21:55:13.13
そういえば最近のツクールには Rubyのスクリプトがついているんだったな

どうせコピペを繰り返してもなにも身につかないから
基本機能で不自由さを噛み締めるのが良い
0240デフォルトの名無しさん2013/06/23(日) 22:00:38.49
程度が低いぜこのスレは
0241デフォルトの名無しさん2013/06/23(日) 22:07:09.88
ここは入門スレだから
程度の高い話期待するなら、そういうスレに移動
0242デフォルトの名無しさん2013/06/23(日) 22:11:42.81
IDないから好き放題でまとまりがないんだよな
それがム板の残念なとこ
0243デフォルトの名無しさん2013/06/23(日) 22:13:23.16
ID有りのスレから逃げてくるのが多いから仕方がない。
0244デフォルトの名無しさん2013/06/23(日) 22:21:22.41
どこですか、それ
0245デフォルトの名無しさん2013/06/23(日) 22:23:40.31
文字は究極のドット絵
0246デフォルトの名無しさん2013/06/24(月) 07:45:29.55
True Type Font
0247 ◆QZaw55cn4c 2013/06/24(月) 08:30:53.83
>>214
えへへ〜、奥村さんの本をみてかきます、めんどくさいから
0248デフォルトの名無しさん2013/06/24(月) 10:29:37.67
えへへ〜、奥さんの○をみてかきます
0249デフォルトの名無しさん2013/06/24(月) 11:14:59.21
アルゴリズムの入門書のクイックソートのCの実装をみていまいち理解できなかったけど
最近haskellのクイックソートのコードをみて、こういうことだったかと腑に落ちたわ。

どの言語ではじめるのがいいですかって質問してる初心者に、Cが基礎だって薦めるやつはウンコだな。
0250デフォルトの名無しさん2013/06/24(月) 11:32:31.32
パラダイムシフトが必要なんだよね、haskell読むのって。
0251デフォルトの名無しさん2013/06/24(月) 12:27:08.17
宗教的理由により生涯ただひとつの言語しか覚えてはいけないという制約があれば
Cから始めるしかない
0252デフォルトの名無しさん2013/06/24(月) 16:56:16.68
唯一の神しか信じてはならない
0253デフォルトの名無しさん2013/06/24(月) 17:22:30.63
>>249
CMMCPで計算モデルを知ると、言語変わっても対応しやすくなる。
0254デフォルトの名無しさん2013/06/24(月) 17:44:34.80
CMMCPって何?
ググっても蚊のサイトしか出ない
0255デフォルトの名無しさん2013/06/24(月) 19:52:16.74
>>254
すまん、CTMCPだ。
(Concepts, Techniques, and Models of Computer Programming)
0256デフォルトの名無しさん2013/06/25(火) 20:21:42.28
質問です。
インクルードガードされたヘッダファイルって2回目は読み込まないんですよね?
でもインクルードしたらどのソースファイルからも宣言した構造体とか使えます。
インクルードで文字列を置き換えてるだけなら、
ヘッダファイルの内容を一箇所でしか使えないと思うんですがどうなっているんでしょうか。
0257デフォルトの名無しさん2013/06/25(火) 20:34:08.74
>>256
IDEとかを使ってて不思議に思うのかも知れないが
CやC++コンパイルってのは基本的に、各.cや.cppに対して行う
.cが2つあれば、コンパイルは2つ走るワケで
「ひとつのコンパイル単位の間で」一度ずつしか読まれないだけよ
0258デフォルトの名無しさん2013/06/25(火) 20:47:01.44
#includeっていうのは指定したヘッダーファイルの内容をその場所にぶちまけてるってだけ
0259 ◆QZaw55cn4c 2013/06/25(火) 20:52:01.63
>>256
一つのコンパイル単位において一回だけ、というだけで
複数のコンパイル単位については、必要ならばそれぞれについて一回インクルードされますよ
0260デフォルトの名無しさん2013/06/25(火) 20:58:52.43
>>257-259
いやー凄い勉強になりました
これが納得いかなくてずっと悩んでたもので
試しにヘッダファイルに int x = 10; と入れてみて二箇所から読んでみたらちゃんと再定義のエラーになりました。
一箇所から2回読んだ時は、インクルードガードされるので大丈夫なんですね
ありがとうございました
0261 ◆QZaw55cn4c 2013/06/25(火) 21:34:56.45
>>260
こっちからはなにかよくわかっていませんが、持ちネタの「仮定義」tentative defenision のよーな木が

extern は要らない子っ!!!!
0262デフォルトの名無しさん2013/06/25(火) 21:40:53.08
undefしてマクロ再定義し、includeを2度する邪悪なソースを見たことがある
0263 ◆QZaw55cn4c 2013/06/25(火) 21:47:01.53
>>262
じゃあ番兵 #define の識別子をきみょーきてれつにするんだ!
0264デフォルトの名無しさん2013/06/25(火) 21:48:53.53
>>263
いやそれヘッダ開いてコピペされるだけだから…#pragma onceとか使うしかないっしょ
0265デフォルトの名無しさん2013/06/25(火) 22:48:00.10
常駐先の人件費抑制に利用されただけの人生だったな残念w
0266デフォルトの名無しさん2013/06/26(水) 00:14:02.45
>>261
そりゃ業務で分割コンパイルも経験した事のないヤツにはexternは不要だろうな
0267 ◆QZaw55cn4c 2013/06/26(水) 04:07:29.94
>>266
キーワード extern を1回も使わなくても複数の翻訳単位で系を構成することはできます(棒)
extern は要らない子っ
0268デフォルトの名無しさん2013/06/26(水) 10:55:37.73
>>267
関数のプロトタイプはexternなしでもいいし、変数もグローバル変数使わなければいいしな。
0269デフォルトの名無しさん2013/06/26(水) 10:59:18.24
C言語のスレなんだが
0270デフォルトの名無しさん2013/06/26(水) 11:03:22.03
Cだとextern不可避のことってあるんだっけ。
0271デフォルトの名無しさん2013/06/26(水) 11:07:49.59
http://www.kouno.jp/home/c_faq/c1.html#11

1.11:
関数宣言についたexternは何を意味するのか。

A:
こういう書き方をすることで、関数の定義がたぶん別のソースファイ ルにあるということを、ほのめかすことができる。しかし以下の2つ に違いはない。

extern int f();

int f();

References:
ANSI Sec. 3.1.2.2, Sec. 3.5.1; ISO Sec. 6.1.2.2, Sec. 6.5.1; Rationale Sec. 3.1.2.2; H&S Secs. 4.3,4.3.1 pp. 75- 6.
0272デフォルトの名無しさん2013/06/26(水) 11:16:18.07
>>268>>270
オブジェクト指向ではないC言語はどうしても大域変数が欠かせない場面が多い

>>267は実務をしらないニートの発言
0273デフォルトの名無しさん2013/06/26(水) 11:30:33.05
>>272
手元にあったgitのソースにgrepかけてみたら、変数のexternはerrnoの一個しかなかったわ。
普通に組んでたらいらないんじゃないの。
02742732013/06/26(水) 11:41:12.99
よくみたらけっこうあったわ > 変数のextern
ごめん。
0275デフォルトの名無しさん2013/06/26(水) 11:44:50.09
オブジェクト指向でないから、大域変数を完全に使わないとすれば、構造体に
変数を持たせてそのポインタを持って回る事になるが、このプログラミングスタイル
は管理が大変な上にエラーの原因になりやすい

externを使った方が遥かに楽な場面が多い
■ このスレッドは過去ログ倉庫に格納されています