C言語の基本|VS CodeでC言語をコンパイル・実行する

VS Codeの中で、書く・コンパイルする・実行する流れをまとめて体験しよう。

ここまでで、C言語のソースファイルを作成し、コマンドプロンプトで gcc を使ってコンパイル・実行する流れを確認してきました。
ここからは、もう一歩進んで、VS Codeの画面の中でC言語のプログラムをコンパイルし、実行結果まで確認する方法を学んでいきます。

VS Codeは、ソースコードを書くためのエディターですが、それだけではありません。画面の下側にターミナルを表示して、そこにコマンドを入力できます。つまり、別でコマンドプロンプトを開かなくても、VS Codeの中で gcc を実行し、作成した実行ファイルをそのまま動かせます。

この方法に慣れると、C言語の学習がかなり進めやすくなります。コードを書いて、すぐにコンパイルし、エラーが出たら同じ画面で直し、もう一度実行する。この繰り返しがスムーズになるからです。

VS Codeで実行する流れを先に確認する

今回は、すでにVS Codeで作業用フォルダーを開いていて、その中にC言語のファイルを保存している前提で進めます。たとえば、cwork フォルダーの中に greeting.c を作成しているような状態です。

手順内容ポイント
1VS Codeでターミナルを開く同じ画面でコマンドを実行できる
2既定のプロファイルをCommand Promptにする学習手順をそろえやすい
3chcp 65001 でUTF-8に切り替える日本語表示の文字化け対策になる
4gcc でコンパイルするコンパイルとリンクがまとめて行われる
5実行ファイルを起動する実行結果をターミナルで確認する
6エラーがあればコードを修正するVS Codeの波線や問題タブも使える

VS Codeの中で、編集、コンパイル、実行、修正をまとめて行えるようになると、学習のテンポがよくなります。

図1:VS Code内でC言語を動かす全体像

この図から分かること

VS Codeでは、コードを書く作業とコマンドを入力する作業を同じ画面で行えます。ターミナルを開いて gcc を実行すれば、別のコマンドプロンプトを起動しなくても、コンパイルと実行結果の確認まで進められます。

VS Codeでターミナルを開く

まずは、VS Codeのターミナルを表示します。
ターミナルは、コマンドを入力するための領域です。VS Codeでは、画面下部に表示されることが多いです。

開き方は次の通りです。

  • メニューから 表示 → ターミナル をクリックする
  • ショートカットキーでターミナルを開く

VS Codeのターミナルを使うと、ソースコードを見ながらすぐにコンパイルできます。エラーが出たときも、画面を切り替えずに該当箇所を直せるので、学習しやすくなります。

メリット内容
画面を切り替えなくてよいエディターとターミナルを同じ画面で使える
修正がすぐできるエラーを見て、すぐコードに戻れる
学習の流れが見えやすいコード、コマンド、実行結果をまとめて確認できる
作業効率が上がる保存、コンパイル、実行、修正を続けやすい

既定のプロファイルをCommand Promptにする

VS Codeのターミナルでは、PowerShellやCommand Promptなど、複数のシェルを使えます。
初期状態ではPowerShellになっていることがありますが、C言語学習の最初はCommand Promptにそろえると、説明どおりに進めやすくなります。

設定手順は次の通りです。

  • VS Codeでターミナルを開く
  • ターミナル右上の下向き矢印をクリックする
  • 規定のプロファイルの選択 をクリックする
  • Command Prompt を選択する
  • すでに開いているPowerShellのターミナルは、必要に応じて終了する
  • 新しくターミナルを開き直す

PowerShellでもC言語のコンパイルや実行はできます。
ただし、学習書や教材の画面例がコマンドプロンプト基準になっている場合は、Command Promptに合わせたほうが混乱しにくいです。特に、文字コードや実行コマンドの表示が少し違って見えることがあるため、最初は環境をそろえるのがおすすめです。

文字コードをUTF-8に切り替える

VS Codeで作成したソースファイルは、UTF-8で保存されることが多いです。
一方、Windowsのコマンドプロンプトは、環境によってUTF-8以外の文字コードで表示する場合があります。そのため、日本語の文字列を表示すると、文字化けすることがあります。

そこで、VS CodeのターミナルでCommand Promptを使う場合も、最初に次のコマンドを実行しておくと安心です。

chcp 65001

このコマンドは、コマンドプロンプトのコードページをUTF-8に切り替えるために使います。

実際の画面

項目文字コードの例
VS Codeで保存したソースUTF-8
コマンドプロンプトの既定表示Shift-JIS系の場合がある
chcp 65001 実行後UTF-8

chcp 65001 は、ターミナルを開き直すと元に戻ることがあります。
そのため、日本語表示を含むCプログラムを扱うときは、ターミナルを開いた直後に実行する習慣をつけておくと安心です。

図2:VS CodeターミナルをCommand PromptにしてUTF-8へ切り替える

この図から分かること

VS Codeのターミナルでは、Command Promptを選び、必要に応じて chcp 65001 を実行することで、教材の手順に合わせやすくなります。特に日本語の実行結果を表示する場合は、文字コードの準備をしておくと文字化けを防ぎやすくなります。

VS Code上でコンパイル・実行してみる

ここでは、短いCプログラムを作成し、VS Codeのターミナルでコンパイルして実行します。
前回までの流れと同じく、作業フォルダーの中にCファイルを保存しておきます。

VS Codeターミナルで実行確認するプログラム

ファイル名:greeting.c

// VS Codeのターミナルで実行を確認するプログラム
#include <stdio.h>

int main(void)
{
    // メッセージを表示する
    printf("VS Code terminal test\n");

    return 0;
}

このプログラムは、VS Codeのターミナルでコンパイルと実行を確認するための短い例です。
処理内容はシンプルで、画面に VS Code terminal test と表示します。

記述役割
// VS Codeのターミナルで実行を確認するプログラムプログラムの説明を書くコメント
#include <stdio.h>printf を使うための準備
int main(void)プログラムの開始地点
{ }main関数の処理範囲
printf("VS Code terminal test\n");文字列を画面に表示する
return 0;プログラムが正常に終了したことを示す

コメントは、プログラムの説明を書くためのものです。
// から行末まではコメントとして扱われ、実行には影響しません。学習中は、あとで見返したときに分かるよう、短い説明を書いておくと便利です。

コンパイルする

VS Codeのターミナルで、作業フォルダーがCファイルのある場所になっていることを確認します。
そのうえで、次のコマンドを入力します。

gcc greeting.c -o greeting

このコマンドでは、greeting.c をコンパイルし、greeting という名前の実行ファイルを作成します。Windowsでは、実際には greeting.exe が作られます。

部分意味
gccC言語のコンパイラーを起動する
greeting.cコンパイル対象のソースファイル
-o greeting出力する実行ファイル名をgreetingにする

この1行で、内部ではコンパイルとリンクがまとめて行われます。
コンパイルはソースコードを機械が扱いやすい形へ変換する処理、リンクは必要なライブラリなどを結びつけて実行ファイルを作る処理です。

コンパイル成功時の見え方

コンパイルが成功した場合、基本的には何も表示されずにプロンプトへ戻ります。
最初は「何も出ていないけれど成功なのかな」と不安になるかもしれませんが、エラーが表示されていなければ成功していることが多いです。

確認するポイントは次の通りです。

  • エラーメッセージが表示されていない
  • 次のコマンドを入力できる状態に戻っている
  • 作業フォルダー内に greeting.exe が作成されている

C言語では、成功したときよりも、失敗したときにメッセージが表示されることがよくあります。
そのため、何も表示されないことも正常な動きとして覚えておきましょう。

実行する

コンパイルが成功したら、続けて実行します。

greeting

環境によっては、次のように拡張子付きで実行してもかまいません。

greeting.exe

実行結果の例は次の通りです。

VS Code terminal test

この表示が出れば、VS Codeの中だけで、編集、コンパイル、実行までできたことになります。
ここまでできると、これからのC言語学習でコードを試す流れがとても楽になります。

図3:VS Codeで編集から実行結果確認まで進める流れ

この図から分かること

VS Codeでは、ソースコードを書く画面とターミナルを同時に使えます。コードを書いて保存し、すぐ下のターミナルで gcc を実行し、そのまま実行結果を確認できます。エラーが出た場合も、同じ画面で修正しやすいのが大きなメリットです。

よくあるコンパイルエラーと対処法

C言語の学習では、エラーはよく出ます。
大切なのは、エラーを出さないことではなく、エラーを読んで直せるようになることです。

セミコロンを忘れる

C言語では、文の終わりにセミコロン ; が必要です。

エラーになる例です。

printf("VS Code terminal test\n")

正しくは、次のように末尾に ; を付けます。

compiling-c-vscode03

確認するときは、エラーメッセージの行番号を見て、その行や前後の行にセミコロンがあるか確認します。
修正したら、保存してから再コンパイルしましょう。

全角文字が混ざっている

コメントや文字列の中なら日本語を使っても問題ありません。
しかし、コードの記号部分に全角文字が混ざると、エラーの原因になります。

確認ポイント内容
入力モード日本語入力がONのままになっていないか
記号;、()、{} が半角か
スペース見た目では分かりにくい全角スペースがないか
数字半角数字で入力しているか

怪しい行がある場合は、その行を一度削除して、半角入力で打ち直すのが早いこともあります。

波括弧の対応が間違っている

main関数の中身は { と } で囲みます。
この対応が崩れると、構文エラーになります。

よくあるミスは次の通りです。

  • { はあるのに } がない
  • } を余分に書いている
  • 関数の外に処理を書いてしまっている

VS Codeでは、括弧にカーソルを合わせると対応する括弧が強調表示されることがあります。
インデントを整えると、波括弧の対応ミスも見つけやすくなります。

ダブルクォーテーションの不一致

文字列は " で囲みます。
開始と終了の引用符がそろっていないと、コンパイルエラーになります。

エラーになる例です。

printf("VS Code terminal test\n');

この例では、開始が " なのに、終了が ' になっています。
正しくは、次のように同じ " で閉じます。

printf("VS Code terminal test\n");

文字列の中に " を表示したい場合は、エスケープを使います。

printf("He said \"C language\".\n");

綴りを間違える

C言語では、関数名や予約語の綴りが少しでも違うと正しく動きません。

間違い例正しい綴り
pritnfprintf
retrunreturn
mianmain

エラーメッセージに表示された単語を見ながら、正しい綴りと比べて確認しましょう。
VS Codeの補完候補も参考になります。

ヘッダーファイルのインクルード忘れ

printf を使うには、次の行が必要です。

#include <stdio.h>

この行は、標準入出力の機能を使うための準備です。
最初のうちは、printf を使うなら #include <stdio.h> が必要、とセットで覚えておくとよいです。

エラーメッセージの読み方

コンパイラーは、エラーの場所や原因のヒントを表示してくれます。
英語で表示されるため最初は驚くかもしれませんが、見るポイントを決めておくと読みやすくなります。

手順やること
1エラーメッセージの行番号を見る
2該当行とその前後を確認する
3記号、綴り、括弧、セミコロンを見る
4修正して保存する
5もう一度 gcc を実行する

英語メッセージが苦手な場合は、まず次の単語に注目するとよいです。

単語よくある意味
errorエラー
warning警告
expected何かが必要、期待されている
missing何かが足りない
undeclared宣言されていない

エラー文は、学習を止めるためのものではなく、直す場所を教えてくれる案内です。
最初は1つずつ読んで、少しずつ慣れていきましょう。

VS Codeで確認しやすい場所

VS Codeには、コンパイル前でもミスの候補に気づきやすくする表示があります。

場所役割
波線表示記述ミスの候補を見つけやすい
問題タブエラーや警告の一覧を確認できる
ミニマップファイル全体のどのあたりに問題があるか見やすい
ターミナルgccのエラーメッセージや実行結果を確認できる

C言語学習では、VS Codeの表示と、GCCのエラーメッセージの両方を見る習慣をつけると、修正が早くなります。

コピー操作も覚えておくと便利

エラーメッセージを調べたいときは、ターミナルの文字をコピーできると便利です。

環境コピー方法
コマンドプロンプト範囲選択してEnter
VS Codeターミナル範囲選択してCtrl + C

エラー文をコピーして調べたり、翻訳ツールで確認したりすると、学習が進めやすくなります。

VS Codeのターミナルを使えるようになると、C言語の学習はかなりスムーズになります。
コードを書き、保存し、gcc でコンパイルし、実行結果を確認し、エラーがあれば同じ画面で直す。この流れを何度も繰り返すことで、C言語の基本構造やエラーの読み方が自然に身についていきます。