- 締切済み
サブルーチン Perl みたいに C言語 で使うには
いままで数年HPを運営していたためにCGIを開発する手段として、Perl言語を使用してきました。その後、あるきっかけでC言語をするようになり、理屈上PerlとC言語が似ていました。 いままで、Perlでは開発・デバッグ等を効率よくするためサブルーチンを他のファイルにパッケージファイルとして開発していました。非常に便利でこれがC言語でも同じく使えたらいいなとつくづく思っています。 Perl言語の例 main.cgi(本体のファイル) package.pl(パッケージファイル) 本体ほファイルで実行させ、実行の途中必要なサブルーチンをパッケージファイルから呼び出します。 呼び出すには、 %渡す値=&パッケージ名::サブルーチン名; 同じようにC言語でやるときはどのようにすればいいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- jacta
- ベストアンサー率26% (845/3158)
> リンクってどうすればいいのですか? > ちなみにVC++つかってます。 VC++であれば、CLの引数にソースファイル名またはオブジェクトファイル名を渡せばリンクまでやってくれます。統合環境でのやりかたは...実際にやってみればすぐわかります。それでも駄目ならマニュアルを読んでください。
- jacta
- ベストアンサー率26% (845/3158)
外部結合を使います。 関数の定義を別のソースファイルで行い、それぞれをコンパイルした後、リンクします。 関数を呼び出す側では、関数原型(プロトタイプ)を宣言するようにしてください。 具体的には、 /* A.c */ #include <stdio.h> int add(int lhs, int rhs); int main(void) { printf("%d\n", add(1, 2)); return 0; } /* B.c */ int add(int lhs, int rhs) { return lhs + rhs; } 上記のA.cとB.cをそれぞれコンパイルした後、リンクすれば、mainからaddが呼び出されます。
お礼
最近、ユーザー関数について習い始めたので、直接先生にきいいてみます。
補足
リンクってどうすればいいのですか? ちなみにVC++つかってます。
お礼
わかりました。やってみます。ありがとうございました。