初めてのC言語!!

今日のメニュー

  • 開発環境
  • とりあえず実行
  • 関数ってなんだ
の3点です。導入編ですね。それでは見てみましょう。

開発環境:用意するもの

C言語を学習する上で必ず必要になってくる「コンパイラ」ですが、ボーランド社 では使用者の登録をすることによってC++コンパイラなど無償でダウンロードできる サービスを提供しています。また、ボーランド社のみならず、フリーのコンパイラは 数多く存在していますが、できるだけANSI規格に準拠したものを選んでください。

コンパイラを入手したら、インストールガイドに沿ってインストールし、開発環境 の構築をしてください。

次にテキストエディタを用意します。OS付属のメモ帳でも構いませんが、このテキ ストエディタもフリーソフトやシェアウェアで提供されています。プログラムを書く には、文字検索や置換、行番号表示、グレップ機能など、豊富な機能を取り揃えてい るエディタのほうが使い勝手が良いです。使用するエディタは好みというものがあり ますので、いろいろ試してみるのもいいかもしれません。ちなみに僕は、ウィンドウ ズでは秀丸エディタ、UNIXではviを使用しています。


実行!

まず、「プログラムを書く→コンパイル→実行」をやってみないことには、C言語 とはどんなものなのか掴み辛いと思いますので、「プログラムを実行したいがためだ けのプログラム」を書いてみましょう。テキストエディタを開いて、

#include 
int main()
{
	printf("プログラマなら誰もが1度は書くコードなんです。");
	return 0;
}

と書いたら、myFirstPrg.cというファイル名で保存します。そして、コンパイラでコ ンパイルしてください。コンパイルエラーがなければmyFirstPrg.exeという実行ファ イルが出来ています。コンパイル時にエラーが返された場合は、正しく上記のプログ ラムが書けているかもう一度確認してみてください。「"」(ダブルクオーテーショ ン)や「;」セミコロンが抜けていないか?(僕が初心者の頃はよく抜け落としていま した。)また、C言語では大文字と小文字を区別しますので、Printf...やMAIN()...な どではコンパイルが通りません。

さて、実行ファイルが生成されていたら、これを起動してみましょう。おもむろに myFirstPrg.exeをダブルクリックして実行したりすると、実行して即座に終了します ので、何が起こったのかわかりません。なにいまの?って感じになるかと思います。 ですので、コマンドプロンプトから

> myFirstPrg.exe

を実行してみてください。

プログラマなら誰もが1度は書くコードなんです。

とコマンドプロンプトに表示されましたね!こ、これを表示するだけなのです が。。。がっくりせずに解説を見てみましょう。


関数(function)

C言語のプログラムは必ず1個以上の関数が記述されています。そして、サンプルプ ログラムの関数とはmain()のことでもあり、C言語ではこのmain()関数から実行され るようになっています。かんすー。かんすー。といいますが、関数てなぁに?はい。 C言語の関数(function)とは、いろいろなプログラムの(命令)文をひとつにまとめた ものです。うわぁ。なんだかこれだけでは、理解はおろか想像もしにくい言い回しで すね。つまり、こういうことです。

	命令文A;
	命令文B;
	命令文C;

という、3つの命令はプログラムを書くときに、これから何回も命令(記述)しそうだ から、ひとまとめにしておきたい!と思ったら、関数にしてしまえばいいのです。 また、ここで命令文の説明もしてしまいますが、命令文(statement)の最後には「;」 セミコロンをつけてください。これが無いとコンパイルエラーを起こしてしまいます よ。

関数
{
	命令文A;
	命令文B;
	命令文C;
}

ひとかたまりの命令群を関数にしてみました。そして、この関数を使う(呼び出す)と きは名前が必要だし、名前をつけておこう!ということで、関数には好きな名前がつ けられます。こうして出来た名前を指定して関数を呼び出せば、いつでも命令文A→ 命令文B→命令文Cを実行してくれますね。

↓名前(関数名)をつけました

myFirstFunc()
{
	命令文A;
	命令文B;
	命令文C;
}

そして、気になるmyFirstFunc()の()ですが、なにも飾りで()をつけているわけで はありません。()内に書かれているものを引数と呼びます。引っぱってくる値と考え てください。関数内でこの引数を使用して、命令を実行することが出来ます。つま り、このmyFirstFunc関数に与えられた何かしらの値を使って、命令を処理していき たいといった時には「引数」として関数に値を与えることが出来ます。そして、この 引数の数はプログラマが定義できます。関数内で引数として欲しい値が3つあったら 3つの引数をカンマ(,)で区切って定義すればいいのです。

↓引数をひとつ与えてみました。

myFirstFunc( 引数A )
{
	命令文A;
	命令文B;
	命令文C;
	引数Aを使用した命令文D;←与えられた引数は関数内で使用できます
}

さらには関数から戻り値と呼ばれる値を関数の外に返すことが出来ます。値を与え るだけでなく、戻すこともできるのですね。どんな値を戻すかはプログラマの自由 で、関数がうまく実行できたかどうかという値を戻したいとか、関数内の様々な命令 で出来上がった値を戻したいとかいう用途が考えられますね。

↓戻り値を戻すようにしてみました。

戻り値 myFirstFunc( 引数A )
{
	命令文A;
	命令文B;
	命令文C;
	引数Aを使用した命令文D;
	戻り値に値を返す命令文E;←戻り値を返すときには明示的に命令します。
}

ここら辺で、関数についてまとめてみましょう。C言語の関数は下記の形をとります

戻り値 関数名(引数リスト)
{
	命令文;
}

先程のmain()関数を見てみると

int main()
{
	printf("プログラマなら誰もが1度は書くコードなんです。");
	return 0;
}

ですね。戻り値のintについては後で説明します。引数は無いので省略しています。 命令文が2個ありますね。実はこのmain()も関数だということがわかりました。

関数の例えはいろいろありますが、自動販売機などは一つの良い例だと思います。 自動販売機という関数を考えてみましょう。

戻り値:ジュース 自動販売機( 引数:お金 )
{
	・与えられたお金を計算する。
	・ジュースの代金を満たしていれば、ジュースを返す。
}

いかがでしょうか。関数の処理内容については他にもいろいろ細かいところはありそ うですが、関数というイメージが少しずつ、カタチ作られてきたのではないでしょう か。


というところで、今日はここまでです。今日の学習をまとめると

  1. 開発環境の構築(各自で)(うわぁ初日からなげやりですね!)
  2. とりあえず実行してみる
  3. 関数について

です。次回は、今回何の説明もなしに使用したprintfを少し解説します

それでは、今日はありがとうございました!(さわやか)


©2010.SUNDORA Consulting CO., LTD. All Right Reserved.