【基礎から学ぶプログラミング言語】 プログラムの構造 ~ヘッダファイル・ソースファイルとは何なのか?~

IT
スポンサーリンク
スポンサーリンク
スポンサーリンク

私たちは日常生活で何気なくパソコンやスマートフォンというコンピュータを使用しています。
これらのコンピュータが普通に動作しているのは、そのようにプログラミング言語が記述されているからです。
本記事は、そんなプログラミング言語について実際に学びながら要点をまとめていったメモという位置付けになります。
私は専攻が電気でプログラムに関しては全くの初心者ですので、同様に初心者の方には理解しやすくなっているかと思います。

今回は、「プログラムの構造」についての説明です。

1.初めに

前回はプログラミングに必要な動作環境としてVisual studioの設定を終えたので、早速プログラミング言語の勉強に入っていき…たいところですが、まずはVisual studioにおけるプログラムの構造を知っておく必要があります。

何故かというと、以下のような画面が表示されるからです。

図1

『ソースファイル?ヘッダーファイル?何それ??』となるでしょう?

基礎部分の勉強なら文量は少ないのでとりあえず.c拡張子のファイルに全部記述すれば動くのですが、後々どれが何を表しているのかは知る必要があるので、ここで簡単に説明してしまおうと思います。

2.プログラムの構造について

まず、プログラムの基本構造についてなのですが、プログラムの単位のことをプロジェクトと呼びます。
そして、複数のプロジェクトをまとめて管理できるソリューションが存在します。

この辺りは実際に新規プロジェクトを作ってみながら確認してみましょう。

Visual studioを立ち上げると、以下のような画面になっています。
ここに「新しいプロジェクトの作成」という項目があるので、これをクリックしましょう。

図2

すると以下のような画面が表示されるので、一番上の「空のプロジェクト」を選択して「次へ」を押しましょう。

図3

新しいプロジェクトの名称入力画面に移行するので、好きな名称を付けましょう。
プロジェクト名を編集すると、勝手にソリューション名も変わります。
ここではproject2としています。
この状態で「作成」をクリックします。

図4

これでproject2という名称のプロジェクトとソリューションが作成されます。

画面右を見るとソリューションエクスプローラというものが表示されていて、ここに現在開いているプログラムの構造が表示されます。
これを見てわかるように、ソリューションという入れ物の下にプロジェクトという入れ物があり、プロジェクトという入れ物の中にソースファイル・ヘッダファイル・リソースファイルが存在します。

図5

これがプログラムの基本構造です。

3.ソースファイルとは?

ソースファイルとは、プログラムを直接書き込むファイルのことです。
拡張子は「.c」になります。(※C言語の場合)
プログラムや関数を定義したりするプログラムの根幹部分だと思ってください。

ソースコードを追加する

現状のデフォルトで表示されている状態では、実際にプログラムを入力していく準備がまだ整っていません。
ソースコードが用意されていないからです。

ソリューションエクスプローラのプロジェクト内のソースファイルを右クリックして、「追加」の「新しい項目」を選択してください。

図6

すると追加するソースコードの種類選択画面が開きますので、これから取り扱うプログラミング言語に対応した拡張子を選択しましょう。
一例を挙げると、C言語は「.c」、C++言語は「.cpp」になります。
大体は単純な名称(「.cpp」→「.c plus plus」)になっています。
下図の場合、デフォルトでは「C++ファイル(.cpp)」が選択されているので、このまま進めるとC++言語用のソースコードが生成されることになります。

図6

後は好きな名前を付けて「追加」をクリックします。
ここでは「sample.c」という名称にしてみました。

すると、画面左側に「sample.c」というソースコードがでかでかと表示されます。
そして、ソリューションエクスプローラを見るとソースファイル内に「sample.c」が追加されているのがわかります。

図7

このソースコードにプログラムを記述していくことになります。
詳しい説明は次回からです。

4.ヘッダファイルとは?

ヘッダファイルとは、プリプロセッサ(ある中心的な処理を行うプログラムに対してその前処理[preprocess]を行うプログラムのこと)やマクロ(何度も繰り返し使用する機能を短い記述に置き換えたもの)を定義したファイルです。
拡張子は「.h」です。
これからプログラムを記述していくために最初に用意しておくべきものだと思ってください。
ヘッダ[header(見出し)]だから最初に必要なモノを指しているのです。

ヘッダファイルを追加する

ヘッダファイルの追加方法は、ソースコードの追加方法と同じです。

ソリューションエクスプローラのプロジェクト内のヘッダファイルを右クリックして、「追加」の「新しい項目」を選択してください。
すると、ソリューションエクスプローラのプロジェクト内のソースファイルを右クリックして、「追加」の「新しい項目」を選択した時と同じ画面(図6)が表示されます。

図6(再)

今度はここで「ヘッダーファイル(.h)」を選択して、好きな名前を付けて「追加」をクリックするだけです。
ここでは「sample.h」という名称にしてみました。
これでソリューションエクスプローラを見ると、ヘッダファイル内に「sample.h」が追加されます。

図8

5.プロジェクトを複数管理する

ソースファイルとヘッダファイル同様、プロジェクトも複数作成することができます。

ソリューションエクスプローラのソリューションを右クリックして、「追加」の「新しいプロジェクト」を選択します。
ソースファイルとヘッダファイルとは微妙に違うんですよね。

図9

すると以下のような画面が表示されますので、「空のプロジェクト」を選択した状態で「次へ」を選択します。

図10

後は好きな名前を付けて「作成」を押すだけです。

図11

これで、新しいプロジェクト(下図project2-2)が追加されます。

図12

新規追加したプロジェクトを実行する方法

新規に追加プロジェクトに関しても好きにソースファイルやヘッダファイルを追加できます。
なのですが、この状態ではプロジェクトを実行することができません。
プロジェクトを実行するには、スタートアッププロジェクトに指定する必要があります。
デフォルトの設定だと最初から存在するプロジェクトがスタートアッププロジェクトになっているので、新規追加したプロジェクトを実行するならその設定を入れ替える必要があるのです。

スタートアッププロジェクトを変更するには、「ソリューション」を選択して「プロパティ」を開きます。

図13

このプロパティの中に「スタートアッププロジェクト」という項目がありますので、「シングルスタートアッププロジェクト」の「project2」を新規追加した「project2-2」に変更します。

図14

これで、新規追加したプロジェクトが実行されるようになります。

6.SDLチェックについて

C言語には、“安全な関数”の使用を強制する機能が存在します。
この機能を[Security Development Lifecycle]…略してSDLと呼びます。

Excelなどで、よく「信頼できるファイルなら実行してください」的なメッセージが出てきませんか?
あれで強制的に「はい」を選べなくする機能がSDLだとイメージしてください。

Visual studioにはSDLチェックという項目が存在し、デフォルトではSDLチェックは「はい」になっています。
これが「いいえ」になっていると、誤作動を起こしたり、悪意のあるプログラムを実行できてしまう状態になってしまいます。
だからこそ、デフォルトでは「はい」になっているのです。

ただ、一部の関数を使用する際、このSDLチェックが「はい」になっているとコンパイルエラーとなって実行が不可能になります
そんな関数を基礎の勉強としてこれから使用していくので、今はこのSDLチェックを「いいえ」にしておく必要があります。

なので、SDLチェックの変更方法をここにメモしておきます。

「プロジェクト」をクリックして「プロパティ」を開きます。

図15

ここで、「C/C++」の「全般」を選択すると、「SDLチェック」という項目がありますので、これを「いいえ」に変更してください。
これだけですが、これをやらないと動かない関数もあるんです。

以上、「プログラムの構造」についての説明でした。