Hello World: 最初のプログラム
プログラミングの第一歩。コードが動くまでの流れを体験する。
「Hello World」は単なる文字表示プログラムですが、実は 「開発環境の疎通確認」 という重要な意味があります。これが動けば、コンパイラ、エディタ、ターミナルが正しく連携している証明になります。
裏側で起きていること
gcc hello.c を実行した瞬間、以下のことが起きています:
- 前処理:
#includeの読み込み - コンパイル: C言語を機械語に翻訳
- リンク: 必要な部品(表示機能など)を結合
- 生成: 実行ファイル(
sample.exeやa.out)の作成
コード解説
// 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// 構成要素の解説
// 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の前にセミコロンが期待されています」という意味です。コンパイラのエラーメッセージを読む練習です。
合格ライン
コマンドラインからコンパイル・実行できた
セミコロン忘れなどのエラーを修正できる