C言語 入門 小学生でもわかるC言語3

十一日目 ソース分割

「わかりやすく!」がテーマです!

HOME/小学生でもわかるC言語3 目次/十一日目 ソース分割/

広告

↓2016年02月29日発売↓

12歳からはじめる ゼロからのC言語 ゲームプログラミング教室

新品価格
¥2,462から
(2016/5/10 22:16時点)

もっと!C、C++言語本

目次へ戻る

?と思ったら

わからなそうな用語集

ソースを分ける

今回はソースの分割をやっていきたいと思います。

これができれば大きなプログラムもソースを分ける事によってすっきり見やすくなりますね!

/*プログラム26*/
#include <stdio.h>

void hello_world(void);

int main(){
	hello_world();
		
	return 0;
}

void hello_world(){
	printf("hello world\n");
}

■実行結果■

実行結果(i-11-1)

「hello_world」という関数が「hello world」するだけのプログラムです。

この関数「hello_world」の部分を他のソースに分けて書いてみたいと思います!

「.h」ファイルと「.cpp」ファイル

まずはヘッダーファイル「.h」ファイルとその内容の「.cpp」の2つのファイルを用意します。

「Visual Studio」の場合は右側のヘッダファイルの上で右クリック

追加→新しい項目と選択してクリックしてください。

実行結果(i-11-2)

新しい項目の追加画面になるのでヘッダーファイルを選択、名前を決めて右下の追加をクリックすれば「.h」ファイルが追加されます。

実行結果(i-11-3)

名前は「hello_world.h」としました。

そしてこれとセットになる「.cpp」ファイルも用意するので先ほどと同じく今度はソースファイルの上で右クリックして「.cpp」ファイルを追加します。

この時に名前は先ほどの名前と合わせるので「hello_world.cpp」とします。

ここで「.cpp」ファイルは「c++」ファイルではないのですか?とギモンに思う方がいるかもしれませんが、これは「c++」上でもc言語は動くので特に気にせずにいきましょう。

ではまずは「hello_world.h」の内容を見てみましょう。

「hello_world.h」

/*プログラム27その1*/
void hello_world(void);

ここではプロトタイプ宣言をするだけになります。

では次にその本体である「hello_world.cpp」を見てみます。

「hello_world.cpp」

/*プログラム27その2*/
#include <stdio.h>

void hello_world(){
	printf("hello world\n");
}

特に難しい事は考えずそのまま関数の内容を書きます。

こちら側でも「#include <stdio.h>」の一文が入るのに注意です。

それでは最後に「int main()」になります。

「int main()」

/*プログラム27その3*/
#include <stdio.h>
#include "hello_world.h"

int main(){
	
	hello_world();

	return 0;
}

■実行結果■

実行結果(i-11-4)

先ほど自分で作ったヘッダファイル「hello_world()」をインクルードすれば関数「hello_world()」が使えるようになります!

これで無事にソース分割ができましたね!

自分で作ったヘッダファイルをインクルードする時は「"」で囲むので注意です。

グローバル変数

次に変数の受け渡しについてみていきます。

「int main()」

/*プログラム28その1*/
#include <stdio.h>
#include "hello_world.h"

int suji;

int main(){
	suji = 101;
	
	hello_world();

	return 0;
}

ここで宣言されているグローバル変数

「int suji」

こちらを渡す時を見てみます。

「hello_world.h」

/*プログラム28その2*/
void hello_world(void);

こちらはそのままで大丈夫です。

では「hello_world.cpp」になります。

「hello_world.cpp」

/*プログラム28その3*/
#include <stdio.h>

extern int suji;

void hello_world(){
	printf("%d回目のhello world\n",suji);
}

■実行結果■

実行結果(i-11-5)

他のファイルでグローバル宣言された変数を使いたい場合は

extern int suji;

この「extern」を先頭につけるだけで大丈夫です。

今回はわかりやすいように「int main()」の中でグローバル変数を宣言しておりますが、もちろん他のファイルでも宣言する事ができます。

それでは次回は通常の変数を他のソースファイルに渡してみます。

次回

十二日目 ソース分割2

□ページの先頭へ□

□目次へ戻る□

広告

↓2014年06月20日発売↓

14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編

新品価格
¥2,500から
(2016/5/10 22:17時点)

↓2014年10月25日発売↓

超本格! サンプルで覚えるC言語 3Dゲームプログラミング教室

新品価格
¥3,110から
(2016/5/10 22:18時点)

↓2013年07月25日発売↓

小学生からはじめるわくわくプログラミング

新品価格
¥2,052から
(2016/5/10 22:21時点)

↓2016年05月13日発売↓

小学生からはじめるわくわくプログラミング2

新品価格
¥2,052から
(2016/5/10 22:22時点)

もっと!C、C++言語本