閉じる

C言語入門: コンパイルから「Hello, World!」表示まで

C言語で最初に取り組む定番が「Hello, World!」の表示です。

本記事では、ファイル作成からコンパイル、実行、そして表示の微調整までを段階的に解説します。

初心者の方でも迷わないよう、エラーになりやすいポイントの対処や、Windows/Mac/Linuxそれぞれのコマンド例も丁寧に示します。

事前準備

開発環境の準備についてはこちらの記事で解説しているので、開発環境の構築から始める場合はこちらの記事を参考にしてください。

C言語のHello, World!表示手順

サンプルコード(最小例)

最小の「Hello, World!」プログラムは次のとおりです。

各行に短いコメントを入れてあるので、どの役割なのかを確認しながら読んでください。

まずはこのまま写して動かすのが近道です。

C言語
// 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 CodeNotepad(新しいバージョン)なら簡単にUTF-8で保存できます。

コードのポイント(printfと改行\n)

画面表示の中心はprintf関数です。

#include <stdio.h>は、printfの宣言を使えるようにするために必要です。

文字列の末尾に付けた\n改行(次の行へ移動)を意味します。

\nがないと表示が同じ行に続き、コマンドプロンプトのカーソルと混ざって読みにくくなることがあります。

基本的には\nを付けるのがおすすめです。

コンパイルと実行の方法

C言語はソースコード(.c)をコンパイラで機械語に変換してから実行します。

コンパイル→実行の2段階を覚えましょう。

ここでは代表的なコンパイラであるgccclangcl(Visual Studio)の使い方を示します。

gccでコンパイルする(Windows/Mac/Linux)

gccが使える環境では、次のようにコンパイルします。

出力ファイル名は-oで指定します。

  • Mac/Linux の例
Shell
# カレントディレクトリに hello.c がある前提
gcc hello.c -o hello
./hello
  • Windows(MinGW系やMSYS2、WSLなど) の例
Batch File
REM カレントディレクトリに hello.c がある前提
gcc hello.c -o hello.exe
hello.exe
補足

gcc: command not found'gcc' は内部コマンドまたは外部コマンド...ではありませんと出た場合は、後述の「コマンドが見つからない」を参照してください。

clangでコンパイルする(Mac/Linux)

clangはMacで標準的に利用されます(Linuxでも使えます)。

使い方はgccとほぼ同じです。

Shell
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を起動してから次を実行します。

Batch File
REM /EHsc はC++例外セーフティのオプションですが、Cでも付いていて問題ありません
cl hello.c
hello.exe
ポイント

clは通常のコマンドプロンプトではパスが通っていません。

必ず「開発者用コマンドプロンプト」から実行してください。

実行して出力を確認する

コンパイルに成功すると実行ファイルができます。

Mac/Linuxでは./hello、Windowsではhello.exeで起動し、次のように表示されれば成功です。

text
Hello, World!

動作確認ができたら、次は小さな変更を加えて手を動かすと理解が定着します。

以下に各OSとコンパイラの典型的なコマンドを一覧にまとめます。

OSコンパイラコンパイル例実行例
Windowsgcc(MinGW/MSYS2)gcc hello.c -o hello.exehello.exe
Windowscl(Visual Studio)cl hello.chello.exe
Macclangclang hello.c -o hello./hello
Linuxgccgcc hello.c -o hello./hello

つまずきやすいポイントと対処法

セミコロン漏れでエラーになる

C言語は文の末尾にセミコロン;が必須です。

次のように;を忘れるとエラーになります。

C言語
#include <stdio.h>
int main(void) {
    printf("Hello, World!\n")   // ← セミコロンがない
    return 0;
}

代表的なエラーメッセージ:

実行結果
error: expected ';' after expression

修正後:

C言語
#include <stdio.h>
int main(void) {
    printf("Hello, World!\n");  // ← セミコロンを付ける
    return 0;
}

全角文字や全角記号が混ざっている

ソース内に全角の記号や空白が紛れると、見た目は近くても別文字として解釈され、エラーになります。

特に();"、空白に注意してください。

誤りの例(全角ダブルクォーテーション):

C言語
printf(“Hello, World!\n”);  // ← これは全角 “ ” でエラーに

正しい例(半角ダブルクォーテーション):

C言語
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側の挙動に影響を与えますが、コンソール側の設定も重要です。

まずは英数字で正しく動かし、その後で日本語表示を試すのが安全です。

コマンドが見つからない(gccやclang)

次のようなメッセージは、コンパイラが未インストールまたはパス未設定を意味します。

text
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を導入しpacmangccを入れる、またはWSLを利用する。
  • Mac
    • Xcode Command Line Toolsをインストール(xcode-select --install)してclangを使う。
  • Linux
    • ディストリビューションのパッケージマネージャ(例: sudo apt install build-essential)でgccまたはclangを導入。

本記事では詳細なインストール手順は扱いません(別記事で解説)。

必要に応じて各OSの公式手順をご参照ください。

表示を少し変えてみる

改行\nを入れる/外す

改行\nを外すと、表示は行末で止まり、シェルのプロンプトと同じ行に続いてしまうことがあります。

C言語
#include <stdio.h>
int main(void) {
    printf("Hello, World!");   // ← 改行なし
    return 0;
}

実行結果の一例(環境によってはプロンプトが同じ行に続く):

text
Hello, World!user@pc:~$

改行を入れると読みやすくなります。

C言語
#include <stdio.h>
int main(void) {
    printf("Hello, World!\n"); // ← 改行あり
    return 0;
}
実行結果
Hello, World!

豆知識: 行末の\nは標準出力のバッファをフラッシュする効果もあります。

改行しないまま直後に終了すると、環境によっては表示が遅れることがあります。

必要に応じてfflush(stdout);を使います。

文字列を変更する(Hello, C languageなど)

表示する文字列を自由に変えられます。

英語の文章はまず安全に表示できます。

C言語
#include <stdio.h>
int main(void) {
    // 表示する文字列を変更
    printf("Hello, C language!\n");
    return 0;
}
実行結果
Hello, C language!

日本語に変更する場合は、前述の文字コードとコンソール設定もあわせて確認してください。

まとめ

本記事では最小の「Hello, World!」を作成し、コンパイルして実行するまでの一連の流れを解説しました。

printfと改行\nの役割gcc/clang/clによるビルド方法、そして初心者がつまずきやすいエラーの回避策を押さえたので、まずは自分の環境で確実に表示できるところまで進めてください。

少しずつ表示内容を変えたり、メッセージを増やしたりすると理解が定着します。

次の一歩として、#includemainの詳しい意味、return 0;の役割、printfの書式などを学ぶと、より実践的なプログラミングへスムーズに進めます。

この記事を書いた人
エーテリア編集部
エーテリア編集部

プログラミングの基礎をしっかり学びたい方向けに、C言語の基本文法から解説しています。ポインタやメモリ管理も少しずつ理解できるよう工夫しています。

クラウドSSLサイトシールは安心の証です。

URLをコピーしました!