たかくんの成長

たかくんの成長

大学X年生。学習記録や学生生活に関することを書きます。内容は間違っています。

Hello, world!で基本を学ぶ

以下のコードを打ち込み,compileして実行することによって,Hello, world!という文字列を出力することができます。

#include <stdio.h>
int main(void)
{
    printf("Hello, world!\n");
    return 0;
}

コードの中身を少し見ていきます。まず1行目です。

#include <stdio.h>

 プログラムをコンパイル(compile)する前に,前処理(preprocessing)という処理を行います。その段階で必要になるコンピュータへの命令文をディレクティブ(directive)と呼び,そのdirectiveの一つが#include文です。ここでの#include文は,C言語の標準ライブラリの一つであるstdio.hをプログラムの中にincludeしてから,compileしてよねという要求をコンピュータに送っています。とりあえず何かプログラムを書く前にはこの#include <使うライブラリ名>を書いておけばいいと思います。

 compileというのは,我々が書いたプログラミングをコンピュータに認識できるような機械語に変換する作業のことです。実際には,プログラム文をコンピュータに認識させるまでにpreprocessing, compile, linkingという3つの工程を行う必要があります。
 ライブラリというのは,様々な機能を果たしてくれる関数がつまったものです。例えばstdio.hというライブラリには文字列の入出力を扱う関数であるprintf,scanfなどが,math.hというライブラリには三角関数cos,sinなどの関数が用意されています。そのようなライブラリをdirectiveで宣言しておくことによって,ライブラリの機能を使うことができます。要するに自分ですべて0から書かなくても,人が作ってくれた機能を使わせてもらうことで大幅に手間と時間が短縮できるということです。

int main(void)

 これは,関数(function)と呼ばれるもので,数学における関数の役割と似ており,何らかの値が入力されたら,もしくは入力されなくても,何らかの値を返すというものです。C言語における関数は

返されるデータ型  関数の名前(引数)

と表されます。

 データ型というのは,扱うデータの性質を表します。代表的なものに整数(integer:intと表記)浮動小数点数(floating point:floatと表記)などがあります。ここではintとなっていますから,この関数の戻り値は整数であるということです。確かに,最後にreturn 0という記述があるので,この関数の戻り値として整数0が返されていることが分かります。
 関数の名前は任意に決めることが出来ますが,あらかじめC言語に組み込まれているキーワードと重複しないようにする必要があります。また,命名の際にコードを解読しやすくするために,小文字を使用する・ハイフンを使用しないなどのいくつかの慣習があります。それらも守る必要があるでしょう。

{
    printf("Hello, world!\n");
    return 0;
}

 {}で囲まれた部分は,関数の中身です。stdio.hというライブラリに含まれているprintf関数によって,Hello, world!という文字列が出力されます。\nというのは特殊文字(Escape Sequence)と呼ばれるものの一つで,\nの場所で出力結果が改行されます。
 returnというのは,文字通り関数の戻り値を返すもので,ここでは0という整数を返しています。returnによって関数の戻り値が返されるとともに,関数の機能が終了し