- 1 名前:デフォルトの名無しさん [2012/03/15(木) 13:41:40.36 ]
- C言語の入門者向け解説スレッドです。
★前スレ C言語なら俺に聞け(入門編)Part 97 toro.2ch.net/test/read.cgi/tech/1330177298/ C言語なら俺に聞け(入門編)Part 97 toro.2ch.net/test/read.cgi/tech/1329161329/ ★過去スレ 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++の宿題片付けます 156代目 toro.2ch.net/test/read.cgi/tech/1328276597/ ★C++言語については避けてください。C++対応明記スレへどうぞ ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 長くなりそうなコードはcodepadに貼り付けてもいいでしょう codepad.org/
- 653 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:26:45.05 ]
- >>650
ノリの話であって厳密な定義としてそう教わったわけじゃないよ。 わかるだろ? で、register と volatile が両方ついてたら何が起こるのか教えてくれよ。
- 654 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:33:20.18 ]
- 使わなくてすむならそれでいいじゃん
問題が起きてから考えろよ
- 655 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:45:58.59 ]
- >>653
コンパイラ次第。 まぁ普通はregisterはあってもなくても同じだろうな。
- 656 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:53:14.27 ]
- registerは単なるヒントだけど、volatileはそうじゃないよね?
- 657 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:56:09.10 ]
- そうじゃないけど?
- 658 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:56:47.56 ]
- だからコンパイラ次第ではなくて、volatileが生きるんじゃないの?
- 659 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 00:57:08.04 ]
- 誰が死ぬなんて言ったんだ?
- 660 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 01:01:05.50 ]
- すみません、失礼します。
ダイテル親子の「C言語プログラミング」という本で今、 迷路を作成して、脱出経路を表示する問題をやっています。 迷路作成はうまくいったのですが、脱出経路の見つけ方がわかりません。 いわゆる「右手で右側の壁をなぞりながら進めば出口にたどり着ける」 というアルゴリズムなのですが・・・、入口から一歩も動かない始末です。 何かアドバイスやポイント等いただけると、助かります。
- 661 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 01:07:07.54 ]
- スレチだがまぁ答えてやるか
ぱっとおもいついたのが再帰関数を利用する方法で 書記位置の右の方向に移動できるかをチェック 次にできなかった場合に方向を90°変更してそこが通れるかのチェック 通れる場合は進む 通れない場合は再帰関数でチェックする っていう方法でいけるんじゃね?>
- 662 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 01:07:29.59 ]
- まずは自分が迷路の中に入ったつもりでそのアルゴリズムにしたがって歩いてみなよ。
- 663 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 01:08:05.82 ]
- 入り口の背中を塞げばおk
- 664 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 01:11:21.63 ]
- まぁ正直経路探索するならブレッドクラムかA*がいいんじゃね?
- 665 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 01:13:47.52 ]
- 右手沿いはメモリ確保とかいらないし次の状態遷移が確定してるので入門向け
- 666 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 01:23:22.17 ]
- 誤魔化せてよかったな。
- 667 名前: ◆QZaw55cn4c mailto:sage [2012/03/23(金) 01:29:25.97 ]
- >>660
hibari.2ch.net/test/read.cgi/tech/1311089619/847 ideone.com/64tHG
- 668 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 10:28:42.28 ]
- バグってんじゃん
- 669 名前: ◆QZaw55cn4c mailto:sage [2012/03/23(金) 12:30:55.72 ]
- >>668
それはどこでしょうか? 上記 ideone.com/64tHG の "#2 show" をクリックしていただければ、一応、迷路の作成と出口探索結果を表示します。
- 670 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 13:45:00.25 ]
- マルチスレッドはvolatileじゃダメ
キャッシュコヒーレンシ的にメモリバリアとかしないとダメ
- 671 名前:デフォルトの名無しさん [2012/03/23(金) 14:00:39.41 ]
- うそつけカス
- 672 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 14:09:54.37 ]
- >>670
kwsk
- 673 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 14:12:41.95 ]
- アトミックな操作にするのと
最適化で読み込みタイミングが移動したり省略されたりするのと 別の話なんじゃないの?
- 674 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 14:15:35.37 ]
- volatile registerと言えば、z80のリフレッシュレジスタなんかが該当するな。
でも、直接割り当てられるわけじゃないから何らかのコンパイラ側の支援が必要だけど。
- 675 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 14:20:02.28 ]
- >>674
お前はアホ。
- 676 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 14:28:52.70 ]
- lmgtfy.com/?q=volatile+%E3%83%9E%E3%83%AB%E3%83%81%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89
javaとは違うのよ
- 677 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 14:33:54.46 ]
- javaと同じとか、勘違いしてるだけだろ。
- 678 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 14:56:25.96 ]
- ラミミ
- 679 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/23(金) 16:07:04.59 ]
- >>672
あるオブジェクトが1命令で書き換えできるとは限らない。 だから書き換えの途中でスレッド切り替えが入るとグダグダになる。 あるいは CPU が効率化のために命令を実行する順序を入れ替えることがある。 (アウト・オブ・オーダー) そんなこんなで複数のスレッドからアクセスされるオブジェクトってのは面倒なことが色々あるんだよ。 だから確実にメモリを参照するようにってだけでは駄目。 そのへんの条件を制限するような仕組が要る。 それがメモリバリア
- 680 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 16:11:57.29 ]
- で、メモリバリアが保証されてるAPIとか何かあるのか?
- 681 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 16:35:17.37 ]
- Win32:Base InterlockedIncrement ?
- 682 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 16:45:48.98 ]
- メモリババアに見えた
- 683 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 16:52:23.30 ]
- 割り込み禁止しといたら?
- 684 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 16:58:58.48 ]
- ノンプリプリエンプション
- 685 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 17:01:07.92 ]
- 知ってる単語並べりゃいいってもんじゃない。
- 686 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 17:03:12.44 ]
- 普通に排他制御すればいいんじゃないの?
- 687 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/23(金) 17:56:13.62 ]
- >>680
アーキテクチャに依存する話なので言語レベルで規格化されてはない。 C++0x では議論してた (バリアではなくフェンスという名前になってた) けど、 最終的に盛り込まれたのかどうかまでは知らん。 >>686 より速度が要るところだとかではいちいちロックしたくないとかあるんだよ。
- 688 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 18:04:16.53 ]
- 一般的には環境が提供するmutex等の同期プリミティブ使えば大丈夫
VC2005以降でWindows上ならvolatileでいいみたい? msdn.microsoft.com/ja-jp/library/bb310595(v=vs.85).aspx
- 689 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 18:07:11.75 ]
- >>687
Cスレなんだけど。
- 690 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 18:08:48.93 ]
- そら、コアな部分でそういう要求がある事はわかるけど、
入門スレでvolatileは誰得なの?っていう話で 一気にそこまで語らないといけないもんなの?
- 691 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 18:09:54.38 ]
- ていうのは>>687の
>>686 より速度が要るところだとかではいちいちロックしたくないとかあるんだよ。 に対して。
- 692 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 18:48:56.43 ]
- >>691
実際ロックせずにすむのかっていうところが俺わからんのだけど メモリバリア使えばアトミックになることが保証されるもんなの?
- 693 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 18:52:21.11 ]
- メモリバリアってgcc特有の言い方じゃあ
archによってはatomicな関数が使えるようになってる
- 694 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 19:01:29.50 ]
- 関数レベルでアトミックにするような属性かなんかがあるってことなんだろか。
でもさすがにそれは大掛かりすぎるから違うか。必要なとこだけロックするほうがいいよね
- 695 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 19:05:34.61 ]
- 排他処理の意味、わかって書いてる?
- 696 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 19:58:11.85 ]
- 信じられないくらい大量のうんこが出たんだ…
って言ったら信じる?
- 697 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 20:00:25.83 ]
- うんこ=バグなら信じられない話じゃあない
そしてお前の頭にこそクソが詰まっているのも信じてあげるよ
- 698 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 20:02:17.47 ]
- 信じられないくらいっつってるだろ。
それを信じるとか前提が覆ってるじゃねーか。 ちゃんと読めよ。
- 699 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 20:24:27.96 ]
- ごめん、無理
- 700 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 20:49:07.37 ]
- C言語達人の先パイたちは、
来る日も来る日も黒い画面にコマンドを打ち込んで下積みをしたのですか? 僕もそうしなければならないですか?
- 701 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 20:49:32.98 ]
- >>693
>archによってはatomicな関数が使えるようになってる それマジで言ったん? ソースあんならすぐ出せ
- 702 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 20:59:16.91 ]
- >>679
volatileとどう関連するんですか?
- 703 名前:702 mailto:sage [2012/03/23(金) 21:02:48.60 ]
- ググったらわかりました。
勉強になりました。
- 704 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 21:03:15.25 ]
- >>702
関係なんてねーよ! ただ講釈垂れたくなっただけだぜ!
- 705 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 21:05:22.86 ]
- >>704
自分も関連がわからなかったんですが、 wikipediaにはそれっぽいことが書いて有りますね。 元派遣PGなんで、スペックは想像通りです。
- 706 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 21:05:40.82 ]
- その意気や良し
- 707 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 21:11:33.57 ]
- >>701
gccのwebの解説ページとか素のソースとか見ればわかることなんだけど gccはatomicな関数が使えるよ程度かもしれんけどね、今は
- 708 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 21:51:23.48 ]
- なんだかパッとしない話だなぁ
- 709 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 23:19:44.63 ]
- パッとする話
↓
- 710 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 23:33:05.11 ]
- サイデリア
- 711 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 23:36:26.67 ]
- サイゼリア
- 712 名前:デフォルトの名無しさん mailto:sage [2012/03/23(金) 23:38:07.28 ]
- >>710
おまえには失望した
- 713 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:04:32.40 ]
- C実践プログラミングってほんと良書だよなあ
文法だけじゃなくてコーディングスタイルとかコメントの書き方、デバッグ手法なんかの 実際にプログラミングする際に役に立つことが書かれてある こういうことは日本人の書いたCの本には書かれてなくて実にユニークな一冊だと思う オライリー本にありがちなおかしな訳もないしスルっと最後まで読めちゃう 定価が4500円とちょい高めな点が欠点だけれどもそれを補うくらい内容が充実している 実に良書である
- 714 名前:デフォルトの名無しさん [2012/03/24(土) 00:11:41.30 ]
- ス テ マ 乙
- 715 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:13:02.78 ]
- プログラマーって基本的に家で使ってるのと変わらないノートパソコンで
プログラミングしてるの?
- 716 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:17:27.55 ]
- それともでかい専用の見た事ない大規模な装置があるの?
- 717 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:18:29.59 ]
- ノートパソコンは会議でしか使わないな。
家では自作PC、会社は大抵デルかHPのレンタルPCだろ。
- 718 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:20:30.23 ]
- それって特別なPCなの?それとも見た目はデスクトップの普通のPC?
後プログラマーって電子回路とか知ってないとだめ?
- 719 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:22:25.57 ]
- それってどれだ。
プログラム用のレンタルは普通のデスクトップだな。 コンパイル用とかはサーバータイプにしたりもするが、仕事による。 電子回路より論理設計の基礎は知ってるといいかも。まぁ金にはならんだろうがw
- 720 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:26:32.05 ]
- ガキが興味もってんだから
もっと夢のある話しろよ
- 721 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:27:04.45 ]
- パソコンの内部を理解してないと、プログラムって組めないですか?
市販のC言語の演習問題やってるけど、単にアルゴリズム考えるだけで パソコンの内部、メモリの事何てどうでもいいですよね?
- 722 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:28:39.15 ]
- 身長よりも大きな箱に入ってるたくさんのコンピュータをいろいろ操作するんだよ。
- 723 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:29:59.31 ]
- 別に電子回路は知ってる必要ねーです
機械式論理回路でつくってあるコンピュータなら 電子云々の話は一切ありません あとプログラミング自体はゲームボーイとかでもできます フツーのノートパソコンでも2chビューワとかは作れる
- 724 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:30:36.35 ]
- で文書書くときもワードでしょ?
パソコン触ってるだけで仕事って良いねぇ。 知らない人が機から見たらネトゲ中毒者と変わらんわけでしょ。 やってる事は高度だが。
- 725 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:32:48.71 ]
- >>723
そうなんですか〜 てことはパソコンのメモリやCPU等の内部の事は電子工学者やハードウェア工学者に任せて ひたすらアルゴリズムを考えればいいのがPGってことでFA?
- 726 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:34:34.45 ]
- PGはアルゴリズムを考える仕事じゃないよ?
- 727 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:36:53.51 ]
- PG=ひたすらタイピングでコードを打って行く仕事
ではないのでしょうか?
- 728 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:38:06.00 ]
- >>721
初心者(低学力ではなく)がC言語をやるのは まさにあなたがどうでもいいと思っている部分も 含めて学ぶのに適しているからだよ
- 729 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:44:48.35 ]
- >>725
アルゴリズムとかはね、プログラムの「部品」だよ レンガとかレゴブロックのひとかけらだよ プログラマはその出来あいの部品やらパーツやらをお望みどーりに組み立てりゃあいい それだけ
- 730 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:47:24.69 ]
- >>729
学生でもできるじゃん バイトでいいからやりたいんだけど....
- 731 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:50:36.04 ]
- じゃぁやればいいじゃん。
- 732 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:51:36.55 ]
- つかプログラマなのに、プロジェクトがどうのこうの言ってるんですが
ttp://itaishinja.com/archives/1845528.html こういうのってSEの仕事じゃないの?
- 733 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 00:57:07.24 ]
- >>732
フリーでやってんだろ、 一人くらいならPG・SE兼任だろ たぶん そして得意分野がアセンブリとドライバと組み込み、 ヘドとため息が両方出て止まらないあたりだろこれ モノとソフトの境界やってる
- 734 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 01:03:22.06 ]
- 組み込みってSEの仕事じゃないの?
- 735 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 01:15:23.61 ]
- >アルゴリズムを考えればいいの
そういうのやってる人はあんまりいないです
- 736 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 01:16:29.59 ]
- 自由にやればいいんだよ自由に
どうせ職場環境なんて激変するんだから
- 737 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 01:17:46.01 ]
- ドナドナSE/PGの愚痴を言うスレになったなw
よく辞めないな
- 738 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 01:18:59.45 ]
- どこのマ板だよ?
- 739 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 01:43:59.22 ]
- SE、PGってはっきり分かれてるのは大規模な仕事か、そうでなければ奴隷。
- 740 名前:デフォルトの名無しさん mailto:sage [2012/03/24(土) 01:46:00.71 ]
- 分けていいのか、よく考えて言おうね
|

|