Docs/ぶんぶん分割コンパイル
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[takataka]] | [[Docs]]
#contents
*はじめに [#v3745a97]
**これは何? [#re15248e]
この文章は,龍谷大学理工学部数理情報学科「[[プログラミン...
**更新履歴 [#y6442d31]
-2003-03-11 [[HTML版>http://tortoise1.math.ryukoku.ac.jp/...
-2006-10-22 wiki化,追記したり修正したり
-2008-04-02 [[Docs]]の下へ移動
*ソースを分けたい [#qed93329]
だんだん長いプログラムを書くようになってくると,
-一つのばかでかいソースファイルにだらだら書くのは鬱陶しい...
-よく使うものを「部品」として用意しといて,いろんなプログ...
という気になってくるかもしれません.「ソースを複数のファ...
↓のソースを例に説明します.
#pre{{
[ prog.c ]
1: #include <stdio.h>
2:
3: int hoge(int x)
4: {
5: return x + 1;
6: }
7:
8: int main()
9: {
10: printf("%d\n", hoge(1));
11: return 0;
12: }
}}
普通にこのソースをコンパイルするには,
$ cc prog.c -o prog
とすればいいですね(ソースをprog.c,コンパイルしてできる...
*ソースを分けてみる [#he06a8d2]
このソースは,main()を含む部分と関数hoge()を含む部分に分...
#pre{{
[ main.c ]
1: #include <stdio.h>
2:
3: int hoge(int x);
4:
5: int main()
6: {
7: printf("%d\n", hoge(1));
8: return 0;
9: }
}}
#pre{{
[ hoge.c ]
1: int hoge(int x)
2: {
3: return x + 1;
4: }
}}
一見すると上のソースを二つに分けただけのようですが、実は ...
*コンパイルとリンク [#y228abf8]
上記のソースのコンパイルの方法には,二通りあります.一つ...
$ cc main.c hoge.c -o prog
とする,というものです.ソースが一つのファイルになってい...
#pre{{
$ cc -c main.c
$ cc -c hoge.c
$ cc main.o hoge.o -o prog
}}
というふうに,コンパイルの手順も分割してやる方法です.こ...
実は,われわれが普段コンパイルと呼んでいる作業は,以下の...
-コンパイル: 個々のソースを機械語の命令に翻訳して,オブ...
-リンク: 複数のオブジェクトファイルをくっつけたりして実...
一つ目の方法のように一回の作業で実行形式まで作るやり方で...
#pre{{
$ cc -c main.c <--- main.c をコンパイル.オブジェク...
$ cc -c hoge.c <--- -c は「コンパイルだけやれ」とい...
$ cc main.o hoge.o -o prog <--- main.o, hoge.o などを...
}}
というようにコンパイルとリンクのそれぞれを逐一実行してい...
一度でできる作業をわざわざ二段階にわけるのは無駄に思える...
*プロトタイプ宣言 [#z0559282]
ソースを分けてみるに書いたように,一つのソースを複数に分...
3: int hoge(int x);
というところがそれです.これは,プロトタイプ宣言と呼ばれ...
以下のようなプログラムを動かしてみると,プロトタイプ宣言...
#pre{{
[ main2.c ]
1: #include <stdio.h>
2:
3: int hoge(int x);
4: double hogehoge(double x);
5:
6: int main()
7: {
8: printf("%d\n", hoge(1));
9: printf("%f\n", hogehoge(1.0));
10: return 0;
11: }
}}
#pre{{
[ hogehoge.c ]
1: double hogehoge(double x)
2: {
3: return x + 0.1;
4: }
}}
main2.cは,hoge.c と hogehoge.c の二つの関数を使っていま...
終了行:
[[takataka]] | [[Docs]]
#contents
*はじめに [#v3745a97]
**これは何? [#re15248e]
この文章は,龍谷大学理工学部数理情報学科「[[プログラミン...
**更新履歴 [#y6442d31]
-2003-03-11 [[HTML版>http://tortoise1.math.ryukoku.ac.jp/...
-2006-10-22 wiki化,追記したり修正したり
-2008-04-02 [[Docs]]の下へ移動
*ソースを分けたい [#qed93329]
だんだん長いプログラムを書くようになってくると,
-一つのばかでかいソースファイルにだらだら書くのは鬱陶しい...
-よく使うものを「部品」として用意しといて,いろんなプログ...
という気になってくるかもしれません.「ソースを複数のファ...
↓のソースを例に説明します.
#pre{{
[ prog.c ]
1: #include <stdio.h>
2:
3: int hoge(int x)
4: {
5: return x + 1;
6: }
7:
8: int main()
9: {
10: printf("%d\n", hoge(1));
11: return 0;
12: }
}}
普通にこのソースをコンパイルするには,
$ cc prog.c -o prog
とすればいいですね(ソースをprog.c,コンパイルしてできる...
*ソースを分けてみる [#he06a8d2]
このソースは,main()を含む部分と関数hoge()を含む部分に分...
#pre{{
[ main.c ]
1: #include <stdio.h>
2:
3: int hoge(int x);
4:
5: int main()
6: {
7: printf("%d\n", hoge(1));
8: return 0;
9: }
}}
#pre{{
[ hoge.c ]
1: int hoge(int x)
2: {
3: return x + 1;
4: }
}}
一見すると上のソースを二つに分けただけのようですが、実は ...
*コンパイルとリンク [#y228abf8]
上記のソースのコンパイルの方法には,二通りあります.一つ...
$ cc main.c hoge.c -o prog
とする,というものです.ソースが一つのファイルになってい...
#pre{{
$ cc -c main.c
$ cc -c hoge.c
$ cc main.o hoge.o -o prog
}}
というふうに,コンパイルの手順も分割してやる方法です.こ...
実は,われわれが普段コンパイルと呼んでいる作業は,以下の...
-コンパイル: 個々のソースを機械語の命令に翻訳して,オブ...
-リンク: 複数のオブジェクトファイルをくっつけたりして実...
一つ目の方法のように一回の作業で実行形式まで作るやり方で...
#pre{{
$ cc -c main.c <--- main.c をコンパイル.オブジェク...
$ cc -c hoge.c <--- -c は「コンパイルだけやれ」とい...
$ cc main.o hoge.o -o prog <--- main.o, hoge.o などを...
}}
というようにコンパイルとリンクのそれぞれを逐一実行してい...
一度でできる作業をわざわざ二段階にわけるのは無駄に思える...
*プロトタイプ宣言 [#z0559282]
ソースを分けてみるに書いたように,一つのソースを複数に分...
3: int hoge(int x);
というところがそれです.これは,プロトタイプ宣言と呼ばれ...
以下のようなプログラムを動かしてみると,プロトタイプ宣言...
#pre{{
[ main2.c ]
1: #include <stdio.h>
2:
3: int hoge(int x);
4: double hogehoge(double x);
5:
6: int main()
7: {
8: printf("%d\n", hoge(1));
9: printf("%f\n", hogehoge(1.0));
10: return 0;
11: }
}}
#pre{{
[ hogehoge.c ]
1: double hogehoge(double x)
2: {
3: return x + 0.1;
4: }
}}
main2.cは,hoge.c と hogehoge.c の二つの関数を使っていま...
ページ名: