Hello World: 最初のプログラム

プログラミングの第一歩。コードが動くまでの流れを体験する。

マイクのテスト (Microphone Check)

「Hello World」は、ライブ前の「マイクのテスト」です。 コード自体に深い意味はありません。「あー、あー、テステス」と言っているだけです。 なぜやるのか? それは「マイク(エディタ)」「ケーブル(コンパイラ)」「スピーカー(ターミナル)」が正しく繋がっているかを確認するためです。これが出力されれば、準備完了です。

「Hello World」は単なる文字表示プログラムですが、実は 「開発環境の疎通確認」 という重要な意味があります。これが動けば、コンパイラ、エディタ、ターミナルが正しく連携している証明になります。

裏側で起きていること

gcc hello.c を実行した瞬間、以下のことが起きています:

  1. 前処理: #include の読み込み
  2. コンパイル: C言語を機械語に翻訳
  3. リンク: 必要な部品(表示機能など)を結合
  4. 生成: 実行ファイル(sample.exea.out )の作成

コード解説

hello.c
// hello.c
/*
* 最初のプログラム
* .c 拡張子で保存します
*/
#include <stdio.h> // 1. 準備
// 2. メイン関数
int main(void) {
// 3. 処理
printf("Hello, World!\n");
// 4. 終了
return 0;
}
// コンパイル(翻訳):
// gcc hello.c -o hello
//
// 実行:
// ./hello
Detailed Analysis
// 構成要素の解説
// 1. プリプロセッサ命令
// コンパイルの前準備。「stdio.h(標準入出力)」を取り込む。
#include <stdio.h>
// 2. エントリーポイント
// プログラムはここから始まる。void は「引数なし」の意味。
int main(void) {
// 3. 関数呼び出し
// 画面に文字を表示する関数。
// \n は「改行」を表す特殊文字(エスケープシーケンス)。
printf("Hello, World!\n");
// 4. 終了コード
// 0 は「正常終了」をOSに伝える。
return 0;
}
Bad
// ❌ Bad: 古い書き方・省略
// 戻り値の型がない(C99以前では許されたが今はNG)
main() {
printf("Hello");
// 改行がないのでプロンプトとかぶる
}
Good
// ✅ Good: 標準的な書き方
// 明示的に int, void, return を書く
int main(void) {
printf("Hello, World!\n");
return 0;
}

実践テクニック

文字化け対策

Windowsのターミナルで日本語が文字化けする場合、ファイルの文字コード(UTF-8)とターミナルの文字コード(Shift-JIS)が一致していないことが原因です。

Fix: chcp 65001 コマンドでターミナルをUTF-8モードにするか、英語で出力しましょう。

なぜ手動ビルド?

ファイルが1つのときは手動コンパイルでOKですが、ファイルが100個になると無理になります。そのときのために、将来は「make」や「CMake」といった自動化ツールを使います。今はそのありがたみを知るために手動で行います。

演習課題

課題1: エラー体験
行末のセミコロン ; をわざと消してコンパイルしてみてください。どんなエラーが出ますか?
解答例を見る

以下のようなエラーが表示されます:

error: expected ';' before 'return'

「returnの前にセミコロンが期待されています」という意味です。コンパイラのエラーメッセージを読む練習です。

合格ライン

コマンドラインからコンパイル・実行できた
セミコロン忘れなどのエラーを修正できる