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

初めてC言語に触れる方向けに、最小のプログラムを作成し、コンパイルして画面に「Hello, World!」を表示するまでの流れを段階的に解説します。

開発環境構築についてはこちらで解説していますので、環境構築がまだの場合はこちらを参考んしてください。

ファイルの作成から実行方法、つまづきやすいエラーの直し方まで、丁寧に説明しますので安心して読み進めてください。

C言語で「Hello, World!」を書く

最初のCプログラムは、とても小さなファイル1つで完成します。

ここではソースファイルの用意、main関数の書き方、そして表示に使うprintfの基本を確認します。

hello.cを作成

作業用のフォルダを用意し、その中にソースファイルhello.cを作成して保存します。

拡張子は必ず.cにし、文字コードはUTF-8を推奨します。

ワープロソフト(Wordなど)ではなく、プレーンテキストのエディタを使います。

日本語環境では全角文字が紛れやすいので、プログラム中の引用符やセミコロン、括弧、バックスラッシュは半角を使用してください。

以下は環境ごとのエディタ例です。

どれもプレーンテキストで保存できます。

環境おすすめのエディタ(例)注意点
Windowsメモ帳、Visual Studio Code、Notepad++拡張子を.cにする。メモ帳は「名前を付けて保存」で文字コードをUTF-8に設定
macOSテキストエディット(フォーマットをプレーンテキストに変更)、Visual Studio Codeリッチテキストはオフにする
Linuxgedit、Mousepad、nano、vim、Visual Studio Code通常UTF-8。ターミナルエディタは保存方法に注意

main関数とprintfの書き方

hello.cの中身は次の通りです。

各行にコメントを添えてありますので、何をしているか確認しながら入力してください。

C言語
// hello.c - 画面に "Hello, World!" を表示する最小のCプログラム
#include <stdio.h>  // printf関数を使うための標準入出力ヘッダ

int main(void) {    // プログラムの入口(エントリポイント)
    // 画面(標準出力)に文字列を表示し、最後に改行を入れる
    printf("Hello, World!\n");

    return 0;       // 正常終了をOSに知らせる
}
実行結果
Hello, World!

このプログラムでは、#include <stdio.h>で標準入出力ライブラリを読み込み、printfで文字列を表示しています。

最後のreturn 0;は「異常なく終わった」ことをOSに伝えます。

改行(\n)とセミコロン

printfの文字列中にある\nは改行を表す特殊な文字(エスケープシーケンス)です。

これがないと、次の表示やシェルのプロンプトが同じ行に続いてしまい、見づらくなります。

例として、あえて\nを省いた場合の違いを見てみます。

C言語
// 改行を入れない例(見づらくなる)
#include <stdio.h>

int main(void) {
    printf("Hello, World!");  // ← \n を付けていない
    return 0;
}

出力例(プロンプトが同じ行に続くことがあります)

実行結果
Hello, World!$

また、C言語では文の終わりをセミコロン;で区切ります。

セミコロンを忘れるとコンパイルエラーになります。

C言語
// セミコロンを忘れた誤った例
#include <stdio.h>

int main(void) {
    printf("Hello, World!\n")  // ← セミコロンなし(誤り)
    return 0;
}

コンパイル時のエラー例

実行結果
hello.c:6:30: error: expected ';' after expression
    printf("Hello, World!\n")
                             ^
                             ;
1 error generated.

エラーの意味は「式の後ろにセミコロンが必要」です。

該当行の末尾に;を付けて再コンパイルしてください。

C言語のコンパイルと実行

ソースコードはそのままでは動かないため、コンパイラで機械語に変換して実行ファイルを作ります。

代表的なコンパイラはgccclangで、使い方はよく似ています。

gcc/clangでコンパイルする手順

ターミナル(コマンドプロンプト、PowerShell)を開き、hello.cを保存したフォルダに移動してコンパイルします。

フォルダ移動はcdコマンドを使います。

gccの例

Shell
# フォルダへ移動してから実行
gcc hello.c -o hello

clangの例

Shell
clang hello.c -o hello

clの例

Shell
# 開発者コマンドプロンプト (Developer Command Prompt) で実行
cl hello.c

うまくいくと、同じフォルダに実行ファイルが生成されます。

LinuxやmacOSではhello、Windowsではhello.exeという名前になります。

初心者のうちは警告にも気づけるよう、次のように警告を有効にするのもおすすめです。

Shell
# gccで警告多め
gcc -Wall -Wextra hello.c -o hello

# clangで警告多め
clang -Wall -Wextra hello.c -o hello

# clで警告多め
cl /W4 hello.c

環境ごとの代表的なコマンドを表にまとめます。

OS/環境コンパイラコマンド例
macOS(標準)clangclang hello.c -o hello
Linux(多くのディストリ)gccgcc hello.c -o hello
Windows(MSYS2/MinGW)gccgcc hello.c -o hello.exe
Windows(WSL上)gccまたはclanggcc hello.c -o hello あるいは clang hello.c -o hello

MSYS2やWSLを使うと、LinuxやmacOSと同様の手順で作業できるため学習がスムーズです。

実行ファイルの起動と出力確認

コンパイルが成功したら、実行ファイルを起動して表示を確認します。

Linux/macOSの実行

Shell
./hello
実行結果
Hello, World!

Windowsの実行(PowerShellやコマンドプロンプト)

PowerShell
.\hello.exe
実行結果
Hello, World!

期待どおりに表示されれば成功です。

よくあるエラーと対処(ファイル名/全角/タイプミス)

初心者がつまずきやすいポイントを具体例とともにまとめます。

いずれも原因を一つずつ切り分けると解決しやすくなります。

ファイル名や場所の間違い

hello.cが存在しない場所でコンパイルしていると、ファイルが見つからないと表示されます。

エラー例
gcc: error: hello.c: No such file or directory
gcc: fatal error: no input files
compilation terminated.

対処として、現在位置をpwd(Linux/macOS)やcdのみ(Windows)で確認し、lsdirでファイル一覧を見ます。

正しいフォルダに移動してから再実行してください。

また、Hello.chello.cのように大小文字が異なると、LinuxやmacOSでは別名として扱われます。

拡張子の誤り(hello.c.txt)

Windowsでは拡張子が隠れていることがあります。

実際にはhello.c.txtのようになっているとコンパイラはCファイルとして扱いません。

エクスプローラーの「表示」から「ファイル名拡張子」を有効にし、拡張子を.cに直してください。

全角記号の混入

全角の記号を使うと、コンパイルエラーになります。

例として、全角セミコロンや全角ダブルクォートは使えません。

C言語誤った例
printf(”Hello, World!\n”);  // 全角ダブルクォート(誤り)
printf("Hello, World!\n");  // 全角セミコロン(誤り)
エラー例
hello.c:5:8: error: stray '\342' in program
hello.c:5:9: error: stray '\200' in program
hello.c:5:10: error: stray '\235' in program
hello.c:6:33: error: expected ';' after expression

文字はすべて半角で入力します。

日本語キーボードでは、バックスラッシュ\が画面上で円記号¥に見えることがありますが、同じ文字として扱われます。

一方で、全角のは別文字なので使わないよう注意してください。

改行は必ず半角の\nです。

誤った改行指定と正しい指定の比較

C言語
printf("Hello, World!\n"); // 全角の\(バックスラッシュではない) → 改行されない
printf("Hello, World!\n");  // 半角の\ n → 正しく改行

タイプミスやヘッダの書き忘れ

printfのスペルやmainのつづりを誤るとエラーになります。

また、#include <stdio.h>を忘れると、コンパイラがprintfの宣言を見つけられません。

例1: ヘッダ忘れ

C言語
// #include <stdio.h> を書き忘れた誤り
int main(void) {
    printf("Hello, World!\n");
    return 0;
}

警告やエラーの例

実行結果エラー例
hello.c:3:5: warning: implicit declaration of function 'printf' is invalid in C99 [-Wimplicit-function-declaration]

この場合は、先頭に#include <stdio.h>を追加してください。

例2: mainのつづり間違い

C言語
int mian(void) {           // mian(誤り) → main(正しい)
    printf("Hello, World!\n");
    return 0;
}

リンクエラーの例

実行結果
/usr/bin/ld: /tmp/cc....o: in function `mian':
hello.c:(.text+0x...): undefined reference to `main'
collect2: error: ld returned 1 exit status

エントリポイントは必ずint main(void)と書きます。

パスに空白がある場合

ユーザ名やフォルダ名に空白が含まれていると、cdやコンパイルの時にパスを引用符で囲う必要があります。

Shell
cd "C:\Users\Your Name\Projects\c"
gcc hello.c -o hello

空白を正しく扱えば問題なくコンパイルできます。

まとめ

本記事では、C言語の最小プログラムであるHello, World!を題材に、ファイル作成からコンパイル、実行、そして基本的なトラブルの対処までを段階的に確認しました。

要点は次の通りです。

まず、hello.cをUTF-8のプレーンテキストとして作成し、#include <stdio.h>int main(void)を骨組みにprintf("...\\n");で表示します。

次に、gcc hello.c -o helloclang hello.c -o helloでコンパイルし、./hello(Windowsは.\hello.exe)で実行して結果を確認します。

よくある失敗は、セミコロンの付け忘れ、全角記号の混入、ファイル名や場所の間違い、ヘッダの書き忘れです。

これらに気をつければ、C言語の基本的な開発サイクルを自分の手で確実に回せるようになります。

次の一歩として、文字列を変えてみたり、複数行表示や変数の表示に挑戦して、基礎をさらに強固にしていきましょう。

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

URLをコピーしました!