• 検索結果がありません。

.分割コンパイル

N/A
N/A
Protected

Academic year: 2021

シェア ".分割コンパイル"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)

11 10.分割コンパイル

ひとつのプログラムを作成する際に,ソースコードを複数のファイルに分割して作成する 方法.

一つのプログラムが,sample.c, sub1.c, sub2.c から構成されているものとする.

[コンパイルの方法]

cc ‑c sample.c  cc ‑c sub1.c  cc ‑c sub2.c 

cc ‑o sample sample.o sub1.o sub2.o 

ソース−(コンパイル)→アセンブラコード−(アセンブル)→オブジェクトコード cc ‑c 

オブジェクトコード1

オブジェクトコード2 −(リンク)→実行ファイル オブジェクトコード3

[利点]

1.開発時のコンパイル時間の短縮

2.汎用的関数やサブルーチンの再利用が可能

3.関数(名),変数(名)の通用範囲(スコープ)の制限が可能

[どのようなときに使うか]

1.多人数でのプログラム開発(OSなど)

2.大規模なプログラム開発

(例)プログラムのあるサブルーチンをいろいろ取り替えて実行してみたい.

一つの処理をいろいろなプログラムの中で利用したい.

(オブジェクトコードを一度作っておけばリンクするだけでよい)

[ヘッダファイルと再コンパイルのお話]

分割してソースファイルを作成する場合,同じ 配列,関数,パラメータ......

がいくつかのファイルで用いられることが多い.このとき

関数や配列のプロトタイプ宣言

パラメータの宣言(定義)

などを,それぞれのソースファイルの先頭で行わなければならない.

しかし,同じ文をそれぞれのソースファイルに書くのは無駄が多い.また,その部分 を修正したい時には,全てのファイルで修正しなければならない(ミスを発生しやす い).そこで,それらをヘッダファイルに置き,必要に応じて include すると便利.

(2)

12

(例) config.h  

     

sample.c sub1.c

   

[ヘッダファイルに何を書くか]

・関数,配列のプロトタイプ宣言 ・define 文

・大域変数(使い方による)

×プログラム本体は書かない

ヘッダファイルを修正したときには,

それを include しているファイルすべてを再コンパイルする必要がある.

↓ 覚えるのは大変

make の利用

レポート課題

7.課題6作成した Newton 法のプログラムを,関数(Cの関数)毎のファイルに分け,

分割コンパイルにより作成せよ.A)分割コンパイルするときのコマンド入力と実行結 果,B)プログラムのソース,およびC)ヘッダファイルを作成した場合,そのソー スと内容の説明,を提出せよ.

8.Newton法には,

• 収束が早い

• 必ずしも収束しない(適当な初期点からはじめるといつまでも止まらない)

という特徴があります.これらの特徴が確認できるような問題例を考えなさい.また,

その例を用いた実行結果を提出せよ.

(二分法などとの比較を行ってもよい)

締 切

   :12月21日(火)午後4時(期限厳守)

提出先:システム事務室

#define MAX 0  void push(double)

#include <stdio.h> 

#include "config.h" 

 

main( ){ 

/* メインプログラム */ 

#include <stdio.h> 

#include "config.h" 

 

  sub1( ){ 

    /* サブルーチンのプログラム */ 

  } 

参照

関連したドキュメント

(世帯主) 45歳 QA医院 入院 30万円 9万円 川久保 正義 父 74歳 QBクリニック 外来 10万円 2万円 川久保 雅代 母 72歳 QC病院 外来

「文字詞」の定義というわけにはゆかないとこ ろがあるわけである。いま,仮りに上記の如く

られてきている力:,その距離としての性質につ

明治33年8月,小学校令が改正され,それま で,国語科関係では,読書,作文,習字の三教

そのほか,2つのそれをもつ州が1つあった。そして,6都市がそれぞれ造

(a) 主催者は、以下を行う、または試みるすべての個人を失格とし、その参加を禁じる権利を留保しま す。(i)

○ 4番 垰田英伸議員 分かりました。.

大阪府では、これまで大切にしてきた、子ども一人ひとりが違いを認め合いそれぞれの力