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