Hello, world!
昔からプログラミングの第一歩は画面に「Hello, world!」と出力することである。
コード(プログラム)
hello.c#include <stdio.h>
int main(void)
{
printf("Hello, world!\n");
return 0;
}
解説
#include <stdio.h>
(インクルード・スタンダードアイオーどっとエイチ):標準入出力(standard input/output,standard I/O)関係のヘッダ(header)をインクルード(include)する。 printf()
を使うために必要。このようなインクルードは,不要な場合でも書いておいて問題はないので,いつでも書いておくのが無難。
int main(void)
(イント・メイン・ヴォイド)は,プログラムを実行するとまず呼び出される main
という関数の定義の始まり部分。ヴォイドつまり何も与えずに呼び出し,イント(インテジャー,integer,整数)を返す。
printf("Hello, world!\n")
(プリントエフ・ハローワールド!・バックスラッシュ(または円印)エヌ):Hello, world! と出力し,改行( \n
,newline)する。
return 0
(リターン・ゼロ):ゼロを返す(プログラムが正常終了したことをOSに知らせるため,最後に 0 を返すのが習慣である)。
見やすいように,中括弧の中は,字下げ(インデント,indent)する。半角空白4文字分くらいの字下げが一般的。全角空白で字下げするとエラーになるので注意。
\
はバックスラッシュ(backslash)と呼ばれる文字。 \n
で改行(newline)を表す。 \
はWindows環境でときどき文字化けして ¥
のように表示されることがあるが,気にしない。
printf
などの関数の定義を知りたければ,ターミナルに man 3 printf
などと打ち込めばよい。システムのマニュアルの第3章(C言語から呼び出せる関数)の printf
の説明が読める。 man
コマンドそのもののマニュアルを読みたければ man man
と打ち込めばよい。
コンパイルと実行
この6行をメモ帳(あるいは好きなテキストエディタ)に書き込み, hello.c
というファイル名で保存して,ターミナルに次のように打ち込む:
gcc hello.c
実行は,UNIX環境(Mac,Linuxなど)なら
./a.out
Windows環境(Cygwinなど)なら
a.exe
または単に a
と打ち込んでも実行できるはず。
コンパイル・コンパイラ
hello.c
という「ソースコード」(source code)を gcc
という「コンパイラ」(compiler)で「コンパイル」(compile)すると,MacやLinuxでは a.out
(Windowsでは a.exe
)という実行プログラム(実行ファイル,executable)ができる。
実行ファイル名を指定するには -o
オプションを使う:
gcc hello.c -o hello
または
gcc -o hello hello.c
これで hello
(Windowsでは hello.exe
)という実行ファイルができる。その実行は
./hello
である(Windowsでは単に hello
と打てばよい)。
ソースコードをオープンにする(公開する)のがオープンソースソフト(open source software)である。WordやExcelなどの商品ソフト(proprietary software)は,実行ファイルだけを販売し,ソースコードは企業秘密として秘匿されている。ソースコードをオープンにすることによって,中身(動作原理)がわかり,容易に改良することができる。
日本語出力
hello2.c#include <stdio.h>
int main(void)
{
printf("こんにちはこんにちは!\n"); /* UTF-8で保存 */
return 0;
}
一般に,日本語を含む場合は,文字コードをUTF-8(UTF-8N)にする必要がある。Windowsのコマンドプロンプトの場合は文字コードをシフトJISにする。なお,
/* ... */
の部分は
コメント(注釈)つまりメモ書きであり,コンパイルの対象ではない。