- 1 名前:デフォルトの名無しさん [2013/04/22(月) 04:47:19.70 ]
- C言語の入門者向け解説スレッドです。
★前スレ C言語なら俺に聞け(入門編)Part 113 toro.2ch.net/test/read.cgi/tech/1362824689/ ★過去スレ 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代目 toro.2ch.net/test/read.cgi/tech/1364700745/ ★C++言語については避けてください。C++対応明記スレへどうぞ。 ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。 # サイズが大きい場合はアップローダ等を利用してください。 codepad.org/ ideone.com/ ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
- 654 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:34:52.58 ]
- >>652
上は0以上。 下は1以上。
- 655 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:35:47.04 ]
- >>652
上は count が 0 の場合に真だが、 下は count が 0 の場合に偽である。 「より大きい」と「以上」の違い。
- 656 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:36:25.59 ]
- >>654
count が int とは限らないでよ。
- 657 名前:652 mailto:sage [2013/05/09(木) 12:46:23.28 ]
- では
count>=-1 count>-1だと?
- 658 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:47:41.51 ]
- うわっこんなくだらない奴がCやってんの
- 659 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:48:52.49 ]
- >>657
不等号はマイナス値に使うと不定になる。
- 660 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:49:53.87 ]
- QZは叩かれると話題を変えたがるから
>>652は自演の可能性がある
- 661 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:52:27.16 ]
- ゲーム専門学校は無能だなw
頭腐ってんじゃないの?
- 662 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:53:06.40 ]
- そりゃ落ちこぼれが通う場所ですから
- 663 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 12:57:01.35 ]
- QZ以下の知能指数
- 664 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 13:03:08.65 ]
- >>659
んなわけない。
- 665 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 14:04:50.86 ]
- (QZの)嘘を嘘であると見抜けいないと掲示板を使うのは難しい
- 666 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 15:31:24.24 ]
- 外部結合、内部結合、無結合について詳しく教えて
意味がわからん
- 667 名前:デフォルトの名無しさん [2013/05/09(木) 15:50:15.00 ]
- externってよくわからないけど
どこか一つのファイルで実体宣言して参照するファイルでexternで良いの?
- 668 名前:666 mailto:sage [2013/05/09(木) 16:02:30.52 ]
- >>667
あってる実態は何もつけずに宣言 分身にextern
- 669 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 16:05:25.14 ]
- >>667
ttp://www7b.biglobe.ne.jp/~robe/cpphtml/html01/cpp01069.html
- 670 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 16:29:24.30 ]
- C++やん
- 671 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 18:43:31.26 ]
- こんにちは
今大学の研究室にC言語で作成したツールがあります 大体ソースコードが15個、ヘッダーも同じくらいあり、ソースコードは合計1万行くらいあります このツールは私が研究室に入る前の先輩方が3人で作ったそうです 今回、先生がこのツールを全く新しく作り直したいと言い出し、私一人で同じようなツールを開発することになりました そこで、既存のツールがどのような処理を行っているか知るためにソースコードを読み始めたのですが、説明などのドキュメントはおろか、ソースコードにコメントは一切書いてありませんでした また、メイン関数の中身も宣言→よくわからない処理→宣言→関数など、宣言も関数もまとめて書いてあらず、インデントも適当です 変数名、関数名も意味がわかりません このようなものを解析するには、やっぱり一つ一つ追っていくしかないのでしょうか? 私はC言語で入門書の演習くらいしかやったことがありませんのでこれから勉強をもっとしなければなりませんが、こういうツールを作成するのにオススメの勉強方法などありますか?
- 672 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 18:47:42.51 ]
- >>671
とりあえずコード整形ツール通すのと 構造解析するツールに通しておけば 手間を2割くらい減らせる あとの8割は……まあガンバレw
- 673 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 18:50:44.72 ]
- 目的があってそのプログラムを動かしているんでしょう?
であれば、今までのソースにたよらず動作や原理から仕様を作り新しく組むのが近道です
- 674 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 18:52:09.41 ]
- >>672
ありがとうございます Cを普通に扱える人だったら、どのくらいで理解できるんですかね... 自分は1ヶ月じゃ無理そうです...
- 675 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 18:57:11.30 ]
- >>673
そうしようと思ったのですが、使えるところは流用しろとのことでして... また、先輩方3人でアルゴリズムや構造体を考えるのに半年、ツール開発で結局2年かかったとのことだったので、正直しんどいです
- 676 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 19:01:31.26 ]
- doxygenに掛けて一度整理してみろ
- 677 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 19:04:41.91 ]
- まずは教授にこれこれなので無理です、というべきだな
解決案か別の案か何か考えてくれると思うよ
- 678 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 19:06:31.41 ]
- 作り直したい理由によるな
もしかしたらラッパー作ればいいだけかもしれん
- 679 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 19:14:35.53 ]
- ここにソース晒さないかぎり正確な答えは得られないわな
今の範囲であれば、やるだけ無駄だから外注に出せ、くらいだ
- 680 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 19:32:15.09 ]
- リファクタリング厨 vs 動いてるなら触るな厨の戦い!
- 681 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 19:40:37.47 ]
- なんで作り直したいのかまず聞くことだな
- 682 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 19:49:00.97 ]
- まあdoxygenとgraphvizで出力してみて、教授と相談すればいい
- 683 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 20:10:09.56 ]
- 沢山の返答ありがとうございます!
doxygenというもの使ってみます! 作り直したい理由は、企業からそのツールが欲しいと言われたが今の何て出せるもんじゃないといった理由らしいです あとは、前提として対応してこなかったものに対して対応できることがわかり、そのためには大幅な改変が必要だからと言った理由です 先生に相談してみます!
- 684 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 20:14:51.00 ]
- 言っておくけど、君じゃ4年かかっても無理だよ
- 685 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 20:19:18.17 ]
- っと馬鹿が申しております
- 686 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 20:21:23.35 ]
- >>683
学生が作ったものだからひどいですよwww って言いながら企業に渡して、企業にリファクタしてもらえ。 当然リファクタ後の使用権と改修権は企業からもらう契約にしてな。 おまえじゃ無理。
- 687 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 20:29:02.38 ]
- ゲー専のバカじゃ無理だからな
文章からしてゲー専
- 688 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 20:30:19.13 ]
- ゲー専の学生ならきれいなコード書くんじゃないの
そもそも専門の教授ってなんだよ
- 689 名前:デフォルトの名無しさん [2013/05/09(木) 20:34:28.76 ]
- 広域変数を動的にメモリ確保ってできる?
- 690 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 20:35:23.76 ]
- >>689
動的に確保したメモリを広域変数に割り当てればいいんじゃね?
- 691 名前:デフォルトの名無しさん [2013/05/09(木) 20:52:00.97 ]
- >>690
サイズ不定なので不可能です
- 692 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 21:00:06.32 ]
- malloc calloc realloc
- 693 名前:デフォルトの名無しさん [2013/05/09(木) 21:00:32.60 ]
- char *kuso;
main() { kuso=malloc(); }
- 694 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 21:03:39.58 ]
- このmallocが実行されたらどのようにメモリが確保されるから知らない無能ゲーム専門
早く死んだほうがいいよ
- 695 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 21:08:56.90 ]
- alloca malloca valloc
- 696 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 21:19:49.13 ]
- クソコードだけど動くわな
free忘れんなよ
- 697 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 21:25:35.95 ]
- >>683
ソース整形も忘れずに。cならindentコマンドでもいける。 既存動作と比較できるツールも作る必要があると思うので、その分のスケジュールも相談するの忘れずに。 あと、可能なら既存動作を保証できるようにテストを先に作ってから修正始めた方がいい。 よくわからないものを修正するときはその方があとで楽。
- 698 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 21:45:15.35 ]
- >>693
初心者に嘘教えるのが未だに居るな。
- 699 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 21:52:40.26 ]
- もうC諦めてC++にしろ
- 700 名前:デフォルトの名無しさん [2013/05/09(木) 21:57:43.82 ]
- >>698
それは聞き捨てならんな ・グローバル ・サイズ不定 というオーダーを満たしてやったうえ 変数名に心を込めたんだぞ
- 701 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 22:23:18.69 ]
- >>700
引数くらい書けや
- 702 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 22:59:19.13 ]
- >>701
どうでもいいことで煽るなよ。
- 703 名前:デフォルトの名無しさん [2013/05/10(金) 00:29:43.30 ]
- array=malloc(sizeof(int)*n*2)で確保したものって
array[n][n]みたいな使い方できる? 型はint
- 704 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 00:35:23.40 ]
- [n][n] だと n*n の器が必要だぜ
int *array = (int*)malloc(sizeof(int)*n*n); [i][j] 番目 array[i*n + j] どうしても array[i][j] と記述したいんだー ってんならポインタ配列にでも
- 705 名前:デフォルトの名無しさん [2013/05/10(金) 00:39:13.37 ]
- >>704
それで良いです ありがとう
- 706 名前:デフォルトの名無しさん [2013/05/10(金) 13:44:44.96 ]
- あ
- 707 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 13:48:24.87 ]
- 内部結合
他のモジュール内部を直接参照したり、一部を共有する。 mt-net.vis.ne.jp/ADFE_mail/0322.htm ってあるけどCで書くとどんな感じ?
- 708 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 14:45:53.05 ]
- >>707
普通の関数コール
- 709 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 14:53:39.27 ]
- >>708
それはデータ結合と違うの? 引数渡すのがデータ結合らしいけど>>708の関数コールもデータ結合と同じじゃない? test(a,b,c);みたいに引数送るときに呼び出してるし 関数コールって引数渡さずに関数だけ実行? よくわからん
- 710 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 15:00:15.67 ]
- >>707
localtime strtok
- 711 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 15:01:04.13 ]
- データ結合:引数に値渡し
スタンプ結合:構造体を渡す 制御結合:制御にかかわる引数を渡す、渡す先のモジュールのif文なのどのflag 外部結合:別モジュールのグローバル変数を参照 共通結合:別モジュールのグローバルな構造体を参照 内部結合だけがよくわからん >>708>>710の単語じゃわからない
- 712 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 15:11:05.86 ]
- データ結合はファイルとかDBを介する奴じゃないの
|

|