C言語で最初に取り組む定番が「Hello, World!」の表示です。
本記事では、ファイル作成からコンパイル、実行、そして表示の微調整までを段階的に解説します。
初心者の方でも迷わないよう、エラーになりやすいポイントの対処や、Windows/Mac/Linuxそれぞれのコマンド例も丁寧に示します。
開発環境の準備についてはこちらの記事で解説しているので、開発環境の構築から始める場合はこちらの記事を参考にしてください。
C言語のHello, World!表示手順
サンプルコード(最小例)
最小の「Hello, World!」プログラムは次のとおりです。
各行に短いコメントを入れてあるので、どの役割なのかを確認しながら読んでください。
まずはこのまま写して動かすのが近道です。
// hello.c
// 画面に "Hello, World!" と表示する最小の例
#include <stdio.h> // printf関数を使うために必要
int main(void) { // プログラムの実行開始点(main関数)
// 文字列を表示し、行の終わりを示す改行(\n)を付ける
printf("Hello, World!\n");
return 0; // 正常終了を示す(詳細は別記事で扱います)
}
実行すると次のように表示されます。
Hello, World!
ファイル作成(hello.cを保存)
エディタ(メモ帳、VS Code、Vimなど)を開き、上のコードを貼り付け、hello.c
という名前で保存します。
拡張子.c
がC言語のソースファイルです。
文字コードは可能ならUTF-8
で保存してください。
Windowsの古いメモ帳では文字コード指定がしづらい場合がありますが、VS CodeやNotepad(新しいバージョン)なら簡単にUTF-8で保存できます。
コードのポイント(printfと改行\n)
画面表示の中心はprintf
関数です。
#include <stdio.h>
は、printf
の宣言を使えるようにするために必要です。
文字列の末尾に付けた\n
は改行(次の行へ移動)を意味します。
\nがないと表示が同じ行に続き、コマンドプロンプトのカーソルと混ざって読みにくくなることがあります。
基本的には\n
を付けるのがおすすめです。
コンパイルと実行の方法
C言語はソースコード(.c
)をコンパイラで機械語に変換してから実行します。
コンパイル→実行の2段階を覚えましょう。
ここでは代表的なコンパイラであるgcc
、clang
、cl(Visual Studio)
の使い方を示します。
gccでコンパイルする(Windows/Mac/Linux)
gcc
が使える環境では、次のようにコンパイルします。
出力ファイル名は-o
で指定します。
- Mac/Linux の例
# カレントディレクトリに hello.c がある前提
gcc hello.c -o hello
./hello
- Windows(MinGW系やMSYS2、WSLなど) の例
REM カレントディレクトリに hello.c がある前提
gcc hello.c -o hello.exe
hello.exe
gcc: command not found
や'gcc' は内部コマンドまたは外部コマンド...ではありません
と出た場合は、後述の「コマンドが見つからない」を参照してください。
clangでコンパイルする(Mac/Linux)
clang
はMacで標準的に利用されます(Linuxでも使えます)。
使い方はgcc
とほぼ同じです。
clang hello.c -o hello
./hello
clでコンパイルする(Visual Studio)
WindowsでVisual Studio(またはBuild Tools)を入れている場合はcl
が使えます。
Developer Command Prompt for VSまたはx64 Native Tools Command Promptを起動してから次を実行します。

REM /EHsc はC++例外セーフティのオプションですが、Cでも付いていて問題ありません
cl hello.c
hello.exe
cl
は通常のコマンドプロンプトではパスが通っていません。
必ず「開発者用コマンドプロンプト」から実行してください。
実行して出力を確認する
コンパイルに成功すると実行ファイルができます。
Mac/Linuxでは./hello
、Windowsではhello.exe
で起動し、次のように表示されれば成功です。
Hello, World!
動作確認ができたら、次は小さな変更を加えて手を動かすと理解が定着します。
以下に各OSとコンパイラの典型的なコマンドを一覧にまとめます。
OS | コンパイラ | コンパイル例 | 実行例 |
---|---|---|---|
Windows | gcc(MinGW/MSYS2) | gcc hello.c -o hello.exe | hello.exe |
Windows | cl(Visual Studio) | cl hello.c | hello.exe |
Mac | clang | clang hello.c -o hello | ./hello |
Linux | gcc | gcc hello.c -o hello | ./hello |
つまずきやすいポイントと対処法
セミコロン漏れでエラーになる
C言語は文の末尾にセミコロン;
が必須です。
次のように;
を忘れるとエラーになります。
#include <stdio.h>
int main(void) {
printf("Hello, World!\n") // ← セミコロンがない
return 0;
}
代表的なエラーメッセージ:
error: expected ';' after expression
修正後:
#include <stdio.h>
int main(void) {
printf("Hello, World!\n"); // ← セミコロンを付ける
return 0;
}
全角文字や全角記号が混ざっている
ソース内に全角の記号や空白が紛れると、見た目は近くても別文字として解釈され、エラーになります。
特に()
、;
、"
、空白に注意してください。
誤りの例(全角ダブルクォーテーション):
printf(“Hello, World!\n”); // ← これは全角 “ ” でエラーに
正しい例(半角ダブルクォーテーション):
printf("Hello, World!\n"); // ← 半角 " " を使う
エディタの表示設定で全角と半角の違いが分かるフォントやハイライトを有効にしておくと防止に役立ちます。
文字コードが原因の表示崩れ
「Hello, World!」はASCII文字だけなので通常は崩れませんが、例えばprintf("こんにちは\n");
のように日本語を表示すると文字化けすることがあります。
- 対処の方向性(簡易)
- ソースファイルをUTF-8で保存する。
- Windowsのコマンドプロンプトで
chcp 65001
を実行してUTF-8に切り替える(Windows Terminal推奨)。 - フォントを日本語表示に対応したものにする。
- 参考オプション(環境による)
- MinGW系gcc:
-fexec-charset=UTF-8
などの実行時文字セット指定が効く場合があります。 - ロケール設定:
setlocale
はC側の挙動に影響を与えますが、コンソール側の設定も重要です。
- MinGW系gcc:
まずは英数字で正しく動かし、その後で日本語表示を試すのが安全です。
コマンドが見つからない(gccやclang)
次のようなメッセージは、コンパイラが未インストールまたはパス未設定を意味します。
gcc: command not found
'cl' is not recognized as an internal or external command,
operable program or batch file.
- Windows
- Visual Studio(またはBuild Tools)をインストールし、Developer Command Promptから
cl
を使う。 - MSYS2を導入し
pacman
でgcc
を入れる、またはWSLを利用する。
- Visual Studio(またはBuild Tools)をインストールし、Developer Command Promptから
- Mac
- Xcode Command Line Toolsをインストール(
xcode-select --install
)してclang
を使う。
- Xcode Command Line Toolsをインストール(
- Linux
- ディストリビューションのパッケージマネージャ(例:
sudo apt install build-essential
)でgcc
またはclang
を導入。
- ディストリビューションのパッケージマネージャ(例:
本記事では詳細なインストール手順は扱いません(別記事で解説)。
必要に応じて各OSの公式手順をご参照ください。
表示を少し変えてみる
改行\nを入れる/外す
改行\n
を外すと、表示は行末で止まり、シェルのプロンプトと同じ行に続いてしまうことがあります。
#include <stdio.h>
int main(void) {
printf("Hello, World!"); // ← 改行なし
return 0;
}
実行結果の一例(環境によってはプロンプトが同じ行に続く):
Hello, World!user@pc:~$
改行を入れると読みやすくなります。
#include <stdio.h>
int main(void) {
printf("Hello, World!\n"); // ← 改行あり
return 0;
}
Hello, World!
豆知識: 行末の\n
は標準出力のバッファをフラッシュする効果もあります。
改行しないまま直後に終了すると、環境によっては表示が遅れることがあります。
必要に応じてfflush(stdout);
を使います。
文字列を変更する(Hello, C languageなど)
表示する文字列を自由に変えられます。
英語の文章はまず安全に表示できます。
#include <stdio.h>
int main(void) {
// 表示する文字列を変更
printf("Hello, C language!\n");
return 0;
}
Hello, C language!
日本語に変更する場合は、前述の文字コードとコンソール設定もあわせて確認してください。
まとめ
本記事では最小の「Hello, World!」を作成し、コンパイルして実行するまでの一連の流れを解説しました。
printfと改行\n
の役割、gcc/clang/clによるビルド方法、そして初心者がつまずきやすいエラーの回避策を押さえたので、まずは自分の環境で確実に表示できるところまで進めてください。
少しずつ表示内容を変えたり、メッセージを増やしたりすると理解が定着します。
次の一歩として、#include
やmain
の詳しい意味、return 0;
の役割、printf
の書式などを学ぶと、より実践的なプログラミングへスムーズに進めます。