Visual Studio CodeでC言語プログラミングを始める(Windows編)

Visual Studio CodeのロゴC言語初級
スポンサーリンク

Python全盛の今ですが、C言語を学び始める方も多いのではないかという管理人の勝手な憶測のもと、WindowsのVisual Studio CodeでC言語プログラミングを始めるベストな方法をご紹介します。端的に言うと再生ボタンを押してgccコンパイル&実行の環境が欲しい方向けの記事です。
※初心者向けに手取り足取り説明しています。(たぶん)

この下にある目次を見ると非常に長くて「げげっ」っと思うかもしれませんが、初めての方でも迷わないように詳細に解説しましたので、ぜひ頑張ってみてください。

スポンサーリンク

インストールが必要になるソフト

まずは何を自分のパソコンにインストールすべきか?という部分からお話しします。

1.C言語コンパイラ(gccコンパイラ)
2.エディタ(Visual Studio Code)

この2点です。
早速インストールしましょう。

WindowsパソコンならCコンパイラさえインストールすれば、あとはメモ帳でプログラムを書いてコマンドプロンプト上でコンパイル(プログラムを実行形式ファイルにすること)すれば作ったプログラムを実行することができます。しかし、メモ帳では行番号表示や入力支援機能がない、コマンドプロンプトでのコンパイルではメモ帳⇔コマンドプロンプト間の切り替えが何度も発生するので煩わしい、など慣れてくると面倒に感じます。
Visual Studio Codeを使えば1つの画面でプログラム作成+コンパイル+実行が可能です
大規模な統合開発環境としてVisual Studioというものもあるのですが、ソフトの起動も重いし、ちょっと気軽にプログラミングといった感じではなくなるので、Visual Studio Codeがおすすめです。Visual Studio Codeを使えば雑用が減ってプログラミングそのものに集中できる、と言いかえることもできます。

C言語コンパイラをインストールする

実はC言語コンパイラにも色々な種類があります。ここは代表的なCコンパイラであり、フリーで一番導入が簡単なgccコンパイラを使います。

導入が簡単と言いましたが、初心者には語弊があるかもしれません。《他のコンパイラと比較して》gccコンパイラは導入が簡単という意味です。導入には面倒な作業があるかとは思いますが、以下の手順通りに済ませれば大丈夫です。頑張りましょう!

詳しい手順は以下のリンクから説明しています。リンク先で解説しているダウンロードインストール利用するための設定を済ませてください。

エディタ(Visual Studio Code)をインストールする

すでにお使いのパソコンにVisual Studio Codeがインストールされている方は本項目を飛ばしてください。

Pythonプログラミングを始めるために書いた記事へのリンクで恐縮なのですが、ほぼ途中まで同じ内容ですので、以下を参考にVisual Studio Codeをお使いのパソコンにインストールしてください。
ただし、以下記事を全て実践する必要はありません。記事内のJapanese Language Pack for Visual Studio Codeの追加の部分まで済んだらこの記事に戻ってきてください。(それ以降はPythonに関しての設定なので…)

※以降この記事でのVisual Studio Codeの呼称は、VsCodeと略します。

C言語プログラミングを楽にするための設定

C/C++機能拡張を導入する

まずは、VsCodeにC言語の予約語や関数名などの予測候補文字列を表示してプログラミングを楽にしてくれるC/C++という機能拡張を導入します。

VsCodeを起動します。
左側の機能拡張ボタンをクリックします。

検索ボックスに「c」と入力すると、C/C++という名前の機能拡張が表示されると思います。(似たような名称が出ますが、Microsoftと表示されていれば大丈夫です)
インストールボタンをクリックしてください。

ボタンがアンインストールの表示に切り替わり、「この機能拡張はグローバルに有効化されています」と表示されていれば機能拡張C/C++のインストールは完了しています。

VsCodeに機能拡張Code Runnerをインストールする

C言語プログラムはそのままでは実行できないので、コンパイルという作業が必要になります。
コマンドプロンプトでこれをしようとすると以下のような文字列を打ち込んでEnterキーを押す必要があります。

例)test.c というCプログラムをコンパイルする場合

gcc -o test test.c

結構これ面倒です。
再生ボタンを押せば、コンパイル&実行を一度にやってくれるVsCodeの機能拡張 Code Runner をVsCodeにインストールして楽をしましょう。

機能拡張ボタンをクリックして検索ボックスに「code runner」と入力して検索します。
表示されたらインストールをクリックします。

Code Runnerの設定を行う

Code Runnerのインストールが完了するとインストールボタンが歯車に変わります。
歯車ボタンをクリックするとメニューが表示されるので、「機能拡張の設定」項目を選択します。

Code Runnerの設定が表示されます。
表示された中から「Executor Map」という項目を探し出し、settings.json で編集 の部分をクリックします。

VsCodeの設定ファイル(settings.json)が開きます。

表示されたファイルは、settings.jsonというVsCodeの設定ファイルです。万が一 settings.json の内容を間違って書き換えたりするとVsCode自体が不安定になるため注意して進めてください。

“code-runner.executorMap”: { と書かれた下の方にある次の項目を探してください。

"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

文字列「gcc」の後に「-fexec-charset=CP932」という文字列を追加してください。「-fexec-charset=CP932」の前後には、半角スペースを必ず入れてください。(重要

追加後の状態

"c": "cd $dir && gcc -fexec-charset=CP932 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

settings.jsonファイルをCtrl+ S上書き保存します。
保存をしたらsettings.jsonファイルは閉じてしまって構いません。

ちなみに上記設定はC言語プログラム実行時の文字化け対策です。詳しく知りたい方は、こちらを参考にしてください。

Code Runnerのターミナル設定を変更する

先ほど表示した設定ウインドウが残っていると思います。設定ウインドウをクリックしてアクティブにします。(設定ウインドウを閉じてしまった場合は、Ctrl + ,(カンマ)で再表示できます)

設定ウインドウを下にスクロールして Run In Terminal という項目を探してください。
初期状態では Run In Terminal の項目にチェックが入っていません。クリックしてチェックを入れてください

Code Runnerのデフォルトではプログラム実行時に読み取り専用エディターなるものが開いてしまいC言語で作ったキーボードから入力させるプログラムなどは実行できません。上記は、それを回避するための設定となります。(具体的に言うと、VsCodeでのC言語プログラムの実行をCode Runnerデフォルトの読み取り専用エディターからWindowsのコマンドプロンプトに変更する設定です)

Code Runnerの設定は以上です。

VsCode環境でのC言語プログラム作成から実行までの流れ

ようやくC言語プログラミングを利用できる環境が整いました。(ここからが開始です!)
早速、C言語プログラムを作って実行させてみましょう!…といっても少々準備が必要です。

C言語プログラムを格納するためのフォルダの準備と設定

まずはC言語プログラムを保存するためのフォルダを作ってください。
今回は例としてWindowsのドキュメントフォルダにgccという名前のフォルダを作りました。(お好きな場所に適当な名前のフォルダを作ってください)

フォルダを作らなくてもVsCodeでパソコンの色々な場所にあるC言語プログラムファイルを読み込んで実行することは可能です。しかし、C言語プログラムの保存場所がばらばらだと自身での管理が面倒になってきます。他のプログラミング言語にも言えますが、PythonならPythonプログラム保存用のフォルダ、C言語ならCプログラム保存用のフォルダなどとフォルダ分けして管理した方が、パソコンのファイルを整理整頓できますし、VsCode上でCプログラムをいちいち探す必要がなく楽です。

次に先ほどC言語プログラム用に作成したフォルダをVsCodeに登録します。
メニューから ファイル > フォルダーをワークスペースに追加… を選択してください。

VsCodeで管理したいC言語ソースコード格納用フォルダを選択して追加ボタンをクリックします。(下の画面では例としてドキュメントフォルダのgccフォルダを登録しています)

追加したフォルダは、VsCodeのウインドウ左側に表示されます。

フォルダの準備と設定は以上です。

C言語プログラムを作ってみる

動作確認の意味も込めて、VsCode上でC言語プログラムを作成してみます。
最初のCプログラムは画面に文字が表示されるプログラムです。

hello.c

/* 画面に何か表示するプログラム */
#include <stdio.h>
int main(void)
{
	printf("C言語は習うより慣れよ\n");
	return 0;
}

実行イメージ

C言語は習うより慣れよ

通常はこうした最初の動作確認プログラムに printf(“Hello, world!\n”); (5行目)のような半角英字を用いることが多いのですが、あえてマルチバイト文字の日本語を使って printf(“C言語は習うより慣れよ\n”); という文字列にしました。理由は、先ほどのVsCodeの設定がうまくいっているか確認するためです。もし実行結果で文字化けしているようであれば、C言語プログラミングを楽にするための設定の部分を見直してください。

先ほど追加したフォルダ上で 右クリック > 新しいファイル を選択します。

C言語のプログラムは拡張子が.cとなります。今回はファイル名を「hello.c」としました。

ファイルを作成すると右のエディターウインドウにカーソルが点滅し入力可能となります。
1と行番号が表示されています。先ほどのCプログラム hello.c を入力してみてください。

入力後のイメージ

プログラム入力の注意点

・「画面に何か表示するプログラム」と「C言語は習うより慣れよ」の部分は、全角文字です。それ以外は全て半角文字となります。プログラムは基本が半角文字であると考えてください。
5行目と6行目の空欄部分はスペースを沢山入力せずに、TABキーを1回入力して空欄を入力しますこれを字下げと呼んでいます。
・5行目の「/n」という部分は、キーボードから半角文字で「¥n」と入力してください。
・3行目の intmainの間、6行目の return0の間にはそれぞれ半角スペースを入れてください。

プログラムを上書き保存する

VsCodeでは未保存の項目はファイル名の横に●がつきます。
また左側のファイルアイコンには、未保存のファイル数が表示されるようになっています。

次の手順に移る前にキーボードの Ctrl + S でプログラムファイルを上書き保存しておきます。

プログラムのコンパイルと実行

通常、作成したCプログラムは、

1.コンパイル
2.実行

といった手順で実行確認をします。プログラムをいきなり実行できるわけではなく、プログラムをコンパイルして実行形式のファイルを作ってから実行となるわけです。
VsCodeと機能拡張の Code Runner をインストールした環境であればこれを再生ボタン1つで済ませることができます。(今回の開発環境で一番楽ができる部分がまさにここです!)

VsCodeの右上にある再生ボタンをクリックします。

VsCode下にターミナルウインドウが表示され自動的にコンパイル+実行結果を出力してくれます。

hello.cのVsCodeでの実行イメージ

ターミナルにコンパイルエラーが表示された場合

先ほどの例はコンパイルが問題なく終了した例ですが、もしプログラムに入力ミスや間違いなどがあると以下のような形でターミナルウインドウにコンパイルエラーが出力されます。

エラーメッセージが出ると何か悪い事をしでかしてしまったような気になりますが、気にしないでください。エラーメッセージはプログラミングを上達させる手助けをしてくれます。

エラーメッセージ部分をよく見て下さい。
上記の例だと以下の部分が重要です。

hello.c:5:45: error: expected ‘;’ before ‘return’

hello.c はファイル名です。その後に続く 5:45 の数値は、「5行目の45文字目あたりが怪しいよ」といったエラーメッセージになります。もっともこのエラーメッセージの場合その後の error: に続く expected ‘;’ before ‘return’ の記述で ‘;’ が含まれているので、C言語特有の命令の最後に ; (セミコロン)を付け忘れているのかな、と予想がつきます。

ちなみにプログラムにエラーが見つかって修正する作業の事を デバッグ といいます。

【重要】コンパイルエラーに対する心構え

大事な点なので、もう少しデバッグ作業コンパイルエラーについてお話しておきます。

初心者がプログラミングで一番時間を費やす部分がデバッグ作業だったりします。管理人は初心者ではないですが、いまだにデバッグに時間が掛かります。(じゃあ、初心者じゃん!などと言わないでください)

コンパイルエラーの英語のメッセージを読みたくないという人も多いと思います。
その場合は、コンパイルエラー時のファイル名に続く行番号部分に注目してください。先ほどの例で言えば、hello.c:5:45 のような部分。

エラーが起きている行数が分かれば、まずはその行にエラーがないかチェックします。その行になければ1つ上の行をチェックします。プログラムは上から下に流れるので、エラーが起きている行数かその行より上をチェックするようにします。大抵のエラーは、エラーが起きている行かその1つ上の行で問題があるからです。

そしてコンパイルエラーの多くは入力ミスです。自分では正しいと思って入力しているので、見逃しがちなのです。入力ミスは、エディターに指定したフォントが原因になる事もあります。例えば、大文字のアイと小文字のエルが同じく見えてしまうようなフォントを使っていると入力ミスに気が付きません。(ちなみにWindowsだとメイリオMonacoあたりがおすすめです)

学生の作ったプログラムを見ていると全角文字をプログラム中に入力してしまいコンパイルエラーとなっていることも多いです。コメント文の中やprintf関数の の後に全角文字を入力後、そのまま全角で入力を続けてしまっている例がありました。

わたしはプログラミングで挫折する一番の原因はデバッグ作業でプログラミング嫌いになることだと思っています
自分の入力ミスに自分で気づけるようになれば自然とプログラミングは上達していきます

まとめておきます。

コンパイルエラーに対する心構え

1.エラーが出た行、またはその上方の行に間違いがある
2.エラーは自分の入力ミスがほとんど
3.アルファベットが区別しやすいフォント設定にしてあるか?
4.変な場所に全角文字がまぎれていないか?

以上、長々とおつきあい頂きありがとうございました。
WindowsのVisual Studio CodeでC言語プログラミングを始めるベストな方法を終わります。

プログラミングは、《 習うより 慣れよ 》です!

コメント