C言語でとある計算プログラムを作成しました。
mainの中でFileAを読込み、1行づつ同じ計算をFileAの最終行まで演算し、出力しています。
同じ計算をしている部分はmain関数の外で作っており、mainの中で呼び出しています。
出来上がったKeisan.cというファイルを、gccでコンパイルして、Keisan.exeというものにして、「./Keisan.exe FileA > ResultA.txt」といったコマンドで利用しています。
改修を進めていくうちにとても長いプログラムになってしまったので、main関数の外で繰り返し呼び出している部分を別のファイルにして呼び出せないものかと悩んでいます。
「Keisan.exe」から「KeisanhojoA.c(もしくは.exe?)」を呼び出して同じ計算結果としたいのですが、どうすればいいのかさっぱりです。
こういうことを解説しているwebサイト、または書籍をご存知でしたらご教示いただきたく。
今やっている処理を正式になんと言うか、また今回やりたいことはなんと呼ばれているものなのか分からないために、分かりにくい質問になってしまいましたが、よろしくお願いいたします。
No.1
- 回答日時:
現在は、Keisan.cという1個のファイルに、
main関数や他の関数を書かれているのですか?
何という関数があって、各関数はどういう機能を持っているかを
教えていただけますか?
この回答への補足
そうです。main関数と一緒に他の自作関数を書いています。
mainの中では、FileA(1秒毎の数値)の読込み、自作関数の呼び出し、戻り値の整理をしています。
自作関数Aで、各秒時毎数値の判定計算をしてmainに0、1を返しています。
あまり詳しいことが言えなくて申し訳ないです。
詳しいことを書けずに申し訳なかったです。
会社のPCを見ないとよく覚えていないというのが一番の問題なのですが・・・
せめて自分のプログラムくらい覚えているように努力します。
ありがとうございました!
No.2ベストアンサー
- 回答日時:
C言語は関数に分割することで別ファイルに分けることが出来ます。
1.たくさんの関数にmainを分割する。まず1つのソースファイルに複数の関数を入れる。
http://www.f-kmr.com/clang/clang-2.htm
http://www.geocities.co.jp/SiliconValley-Cuperti …
http://daimaru.sakura.ne.jp/c_room7.html
2.それでも関数が多すぎたら、機能単位に別のファイルに分割する。
http://www-ise3.ise.eng.osaka-u.ac.jp/miura/prog …
http://www.geocities.jp/ky_webid/c/032.html
色々なサイトを教えていただき、ありがとうございます。
今回以外のことにも利用できるサイトで大変たすかりました。
ありがとうございました!
No.3
- 回答日時:
ファイルを分割したいということですね
コンパイル時には呼び出す関数の戻り値と引数の型だけわかっていれば関数の実体はなくても出来ます
リンク時に関数の実体をリンクできればいいです
/* Keisan.c */
int Keisanhojo(int);
int main(int argc, char**argv)
{
int a, b = 0;
a = Keisanhojo( b );
return 0;
}
-------------------
/* KeisanhojoA.c */
int Keisanhojo(int var)
{
return var * 2;
}
$ gcc -o Keisan Keisan.c KeisanhojoA.c
この回答への補足
実例付きでありがとうございます。
$ gcc -o Keisan Keisan.c KeisanhojoA.c
このコンパイルで「Keisan.c」と「KeisanhojoA.c」の2つが合わさって「Keisan」というファイルになるわけですね?
ということは3つのファイルを統合したい場合、以下のようでいいでしょうか?
$ gcc -o Tougou.exe Keisan.c KeisanhojoA.c KeisanhojoB.c
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- その他(プログラミング・Web制作) FORTRAN77の配列(除算) 2 2023/02/01 14:34
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Latexで図番号だけを「図1.1」...
-
#include <Windows.h>というヘ...
-
公文書のxmlファイルの開き方が...
-
アクセス 壊れた? 「ファイ...
-
参照するファイルをワイルドカ...
-
Word VBA MSGBOX 内で降順表示
-
C言語---ファイルに出力したデ...
-
ラッパーって何なんでしょう・...
-
.NETアプリを作ったときの .man...
-
エクセルファイルが複数同時に...
-
binファイルを解凍したいの...
-
warファイルをEclipseでプロジ...
-
自分で作成した重要ファイルを...
-
他のMDBのマクロを実行する方法
-
ハイパーリンクされたJPGファイ...
-
jarファイル
-
「ブルーファイル」と「グリー...
-
実行ファイル(.exeファイル)...
-
コマンドプロンプトで作成日時...
-
exeファイルをデータ転送サービ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iPhoneでXMLファイルを開くには...
-
公文書のxmlファイルの開き方が...
-
binファイルを解凍したいの...
-
アクセス 壊れた? 「ファイ...
-
.NETアプリを作ったときの .man...
-
リンクの張り付けかたを教えて...
-
#include <Windows.h>というヘ...
-
jarファイル
-
Seasar2のdiconファイルの読み方
-
Word VBA MSGBOX 内で降順表示
-
監視ツールを入れさせられまし...
-
CSSを1ページに1枚作るのって変...
-
コマンドプロンプトで、指定し...
-
ファイルが開かれているかどう...
-
exeファイルをデータ転送サービ...
-
パイソンでpy ファイルと p...
-
exeファイルの中身を見る方法は...
-
Latexで図番号だけを「図1.1」...
-
参照するファイルをワイルドカ...
-
バッチ処理で追記コピーしたい
おすすめ情報