C言語の基本|C言語を動かしてみる

まずは書いて、コンパイルして、実行する。C言語の最初の一歩を手で動かして体験しよう。

開発環境の準備ができたら、いよいよC言語のプログラムを実際に動かしてみます。
ここから先は、最初からすべての仕組みを完璧に理解しようとしなくても大丈夫です。まずは、短いプログラムを書き、コンパイルし、実行して、画面に結果が表示されるところまで体験することが大切です。

C言語は、ソースコードを書いただけではそのまま動きません。人間が読める形で書いたソースコードを、コンピュータが実行できる形へ変換する必要があります。その流れの中で、コンパイル、リンク、実行という工程が登場します。

最初は難しく感じるかもしれませんが、流れを一度つかむと、その後の学習がかなり進めやすくなります。変数、条件分岐、繰り返し、関数などは、この基本の流れを体験したあとで、少しずつ積み重ねていけば大丈夫です。

C言語を動かす前に知っておきたいこと

C言語の学習では、いきなり文法を細かく覚えるよりも、まず「Cプログラムはどうやって完成して動くのか」を見ておくと理解しやすくなります。

C言語のプログラムは、次のような流れで実行できる形になります。

項目役割ここでのポイント
ソースコード人が読むために書くプログラムVS Codeなどで作成する
コンパイルソースコードを機械に近い形へ変換する処理GCCなどのコンパイラーが担当する
オブジェクトファイルコンパイル後にできる中間ファイルまだ単体では実行できない
リンク必要な部品やライブラリを結合する処理実行ファイルを作る仕上げ
実行ファイル実際に起動できるファイルWindowsでは .exe になることが多い
実行実行ファイルを動かすことコマンドプロンプトなどで確認する

初心者のうちは、コンパイルとリンクをまとめて「ビルド」と呼ぶ場面に出会うこともあります。
ただ、学習の最初に「コンパイルは変換」「リンクは結合」と軽く分けて知っておくと、エラーが出たときに原因を考えやすくなります。

図1:C言語プログラムが動くまでの全体像

この図から分かること

C言語のプログラムは、書いたらすぐに実行できるわけではありません。ソースコードを作成し、コンパイルで変換し、リンクで必要な部品と結合して、実行ファイルを作ります。その実行ファイルを起動して、はじめて結果を確認できます。この流れを体験することが、C言語学習の最初の大きな一歩です。

ソースコードを記述する

最初の作業は、C言語のソースコードを書くことです。
VS Codeなどのテキストエディターを使い、ファイル名の最後に .c を付けて保存します。たとえば、first_step.c のような名前にします。

ソースコードは、人間が読める形で書かれたプログラムです。
この段階では、コンピュータが直接実行できるものではありません。いわば、これから実行ファイルを作るための設計図のようなものです。

項目意味補足
ソースコードC言語で書かれたプログラム本文人が読める形で書く
ソースファイルソースコードを保存したファイル例: first_step.c
拡張子 .cC言語ファイルであることを示すファイル名の最後に付ける
テキストエディターコードを書くためのソフトVS Codeなどを使う

ここで大切なのは、ソースコードはまだ「実行できるファイル」ではないという点です。
C言語では、ソースコードを書いたあとにコンパイルという作業が必要になります。

コンパイルする

コンパイルは、C言語で書いたソースコードを、コンピュータが扱いやすい形へ変換する作業です。
この処理を行うソフトをコンパイラーと呼びます。WindowsでC言語を学ぶ場合、GCCを使うことが多いです。

コンパイルでは、ソースファイルからオブジェクトファイルと呼ばれる中間ファイルが作られます。
ただし、このオブジェクトファイルはまだ途中の状態です。そのまま実行できるわけではありません。

項目意味補足
コンパイルソースコードを変換する処理コンパイラーが担当する
コンパイラーコンパイルを行うソフト例: GCC
機械語に近い形コンピュータが扱いやすい命令形式人間には読みにくい
オブジェクトファイルコンパイル後の中間ファイル例: first_step.o
コンパイルエラー文法ミスなどで変換できない状態セミコロン忘れなどで起きる

初心者の方は、コンパイルという言葉だけで難しく感じるかもしれません。
まずは「C言語で書いた文章を、コンピュータ向けの形に変換する作業」と考えれば大丈夫です。

リンクする

リンクは、コンパイルで作られたオブジェクトファイルに、必要なライブラリなどを結合して、実行ファイルを作る作業です。
この処理を行うソフトをリンカーと呼びます。

たとえば、画面に文字を表示する printf は、標準ライブラリの機能を使っています。
自分で書いたソースコードだけではなく、あらかじめ用意されている部品も組み合わせることで、実行できるプログラムが完成します。

項目意味補足
リンク必要な部品を結合する処理実行ファイル作成の仕上げ
リンカーリンクを行うソフトビルド工程の一部
ライブラリファイル便利な機能がまとまった部品集画面出力などで使われる
実行ファイル実際に起動できるファイルWindowsでは .exe になりやすい
リンクエラー必要な部品が見つからない状態関数未定義などで発生する

GCCで gcc first_step.c -o first_step のように実行すると、内部ではコンパイルとリンクがまとめて行われます。
学習の最初は、コマンド1つで実行ファイルまで作れると考えて大丈夫ですが、裏側では「変換」と「結合」が行われていることを知っておくと理解が深まります。

図2:コンパイルとリンクの役割の違い

この図から分かること

コンパイルは、C言語のソースコードをコンピュータが扱いやすい形へ変換する工程です。リンクは、その変換後の部品にライブラリなどを結合して、実行できるファイルを作る工程です。GCCのコマンドではまとめて行われることが多いですが、役割を分けて理解しておくと、コンパイルエラーとリンクエラーの違いも見えやすくなります。

実行する

リンクによって実行ファイルが作られたら、最後にCLIで実行します。
Windowsでは、コマンドプロンプトで実行ファイル名を入力して起動します。

ここでようやく、画面に文字が表示されたり、計算結果を確認できたりします。
プログラミング学習では、実行して結果を見て、必要なら修正して、また実行するという流れを何度も繰り返します。

項目意味補足
実行実行ファイルを起動すること結果を確認する段階
CLI文字で命令を入力する画面コマンドプロンプトなど
実行結果プログラムの出力内容画面表示や計算結果など
確認期待どおりに動いたかを見る学習ではとても大切

最初は、画面に短い文字が表示されるだけでも十分です。
自分で書いたプログラムが動き、結果が表示される体験は、C言語学習の土台になります。

C言語プログラム作成の流れ

ここまでの流れを、4つのステップとして整理すると次のようになります。

手順作成・利用するもの処理内容使用ソフト
1ソースファイル(xxx.c)ソースコードを書くVS Codeなど
2オブジェクトファイル(xxx.o)コンパイルするGCCなど
3実行ファイル(xxx.exe)オブジェクトファイルとライブラリをリンクするリンカー
4実行結果実行ファイルを動かすコマンドプロンプトなど

この流れを毎回意識すると、C言語の学習がかなり整理しやすくなります。
書く、変換する、結合する、動かす。この順番をまずは大きくつかみましょう。

ライブラリファイルとは何か

ライブラリファイルは、よく使う機能をあらかじめまとめた部品集のようなものです。
たとえば、画面に文字を表示する処理や、文字列を扱う処理を毎回ゼロから作るのは大変です。そこで、C言語ではよく使う機能がライブラリとして用意されています。

たとえC言語での意味
工具箱便利な機能が入っている
部品棚必要な機能を選んで使える
共通パーツ毎回作り直さなくてよい
料理道具材料だけでなく道具も使って完成させる

初心者のうちは、ライブラリを難しく考えすぎなくて大丈夫です。
まずは、ライブラリは便利な機能のまとまりであり、リンクによって自分のプログラムと結びつけられるもの、と考えておきましょう。

Windows 11・VS Code・GCCの役割

C言語を動かす環境では、いくつかのソフトや道具が登場します。
それぞれの役割を分けて覚えると、混乱しにくくなります。

項目役割学習でのメリット
Windows 11作業する土台となるOS利用者が多く情報を探しやすい
VS Codeソースコードを書くエディター見やすく、補助機能が使いやすい
GCCC言語をコンパイルするコンパイラーC言語学習でよく使われる
コマンドプロンプトコマンドを入力するCLIコンパイルと実行の流れを確認しやすい

初心者の方は、VS Code、GCC、コマンドプロンプトの役割が混ざりやすいです。
VS Codeは書く場所、GCCは変換する道具、コマンドプロンプトは命令を入力して結果を見る場所、と分けて考えると分かりやすくなります。

最初の実行を確認するCプログラム

ファイル名:first_step.c

#include <stdio.h>

int main(void)
{
    /* はじめてのC言語実行メッセージを表示する */
    printf("C言語の最初の一歩です。\n");
    printf("ソースコードを書いて、コンパイルして、実行しました。\n");

    /* プログラムを正常終了する */
    return 0;
}

実行結果の例

C言語の最初の一歩です。
ソースコードを書いて、コンパイルして、実行しました。

このプログラムは、C言語を最初に動かしてみるための短い例です。
処理はシンプルですが、C言語の基本構造であるヘッダの読み込み、main関数、コメント、printf、returnが含まれています。

記述役割詳しい説明
#include <stdio.h>標準入出力の準備printf を使うために必要なヘッダファイルを読み込む
int main(void)プログラムの開始地点C言語ではmain関数から実行が始まる
{ }処理の範囲を示すmain関数の中身を囲む
/* ... */コメント説明を書くための文で、実行には影響しない
printf(...)文字を表示する画面に文字列を出力する関数
\n改行次の表示を新しい行にする
return 0;正常終了を返す問題なく終わったことを表す

特に大切なのは、printf だけではありません。
#include <stdio.h> は printf を使う準備であり、return 0; はプログラムが正常に終わったことを示します。最初は形として覚え、少しずつ意味を理解していけば大丈夫です。

実際の作成から実行までの手順

ここでは、Windows 11、VS Code、GCC、コマンドプロンプトを使う前提で、first_step.c を動かす流れを確認します。

手順操作内容
1VS Codeでソースコードを作成して保存するfirst_step.c
2コマンドプロンプトを開く作業フォルダーへ移動する
3コンパイルするgcc first_step.c -o first_step
4実行するfirst_step
5結果を確認するメッセージが表示される

コンパイルするときは、次のコマンドを入力します。

gcc first_step.c -o first_step
gcc first_step.c -o first_step

実行するときは、次のように入力します。

first_step

Windowsでは、実際には first_step.exe という実行ファイルが作成されます。
ただし、コマンドプロンプトでは first_step と入力して実行できる場合があります。

図3:保存から実行結果確認までの操作手順

この図から分かること

C言語を動かすときは、VS Codeで書いて保存し、コマンドプロンプトでGCCを使ってコンパイルし、作成された実行ファイルを起動します。保存、コンパイル、実行、結果確認の順番を毎回意識すると、どこで問題が起きたのかも見つけやすくなります。

コンパイルコマンドを分解する

gcc first_step.c -o first_step は、最初は少し長く感じるかもしれません。
しかし、分解すると意味はシンプルです。

部分意味役割
gccGCCを使う命令コンパイラーを起動する
first_step.c入力ファイルコンパイルしたいCソースを指定する
-o出力ファイル名を指定するオプション作成する実行ファイル名を決める
first_step出力される実行ファイル名実行時に使う名前

つまり、このコマンドは「first_step.c をGCCで処理して、first_step という名前の実行ファイルを作ってください」という意味になります。

よくあるつまずきポイント

最初の実行では、うまくいかないことがあっても自然です。
よくある原因を先に知っておくと、落ち着いて対応できます。

症状よくある原因対応
gccが使えないGCCのPath設定が未完了環境変数のPathを確認する
実行ファイルが作られないコンパイルエラーがあるエラーメッセージの行番号を見る
変更した内容が反映されない保存前にコンパイルした保存してから再コンパイルする
日本語が文字化けする文字コード設定が合っていないcmd側の文字コードを確認する
ファイルが見つからない作業フォルダーが違うcd で正しいフォルダーへ移動する
実行できない実行ファイル名を間違えている作成されたファイル名を確認する

エラーは、失敗の印ではなく、どこを直せばよいかを教えてくれるヒントです。
最初は1つずつ確認しながら、保存、コンパイル、実行の流れに慣れていきましょう。

登場した用語の整理

ここまでに出てきた用語を整理しておきます。

項目詳しい意味学習上のポイント
C言語古くから使われている基本的なプログラミング言語コンピュータの仕組みを学びやすい
ソースコード人が読めるプログラムの記述内容まずここを書く
ソースファイルソースコードを保存した .c ファイル例: first_step.c
コンパイルソースコードを機械向けの形式へ変換する処理コンパイラーが担当する
コンパイラーコンパイルを行うソフト例: GCC
オブジェクトファイルコンパイル後の中間成果物まだ実行できない
リンクオブジェクトとライブラリを結合する処理実行ファイル作成の仕上げ
リンカーリンクを行うソフトコンパイラーと連携して動くことが多い
ライブラリファイル便利な機能が入ったファイルprintf などを使う土台
実行ファイル実際に起動できる最終ファイルWindowsでは .exe になりやすい
CLI文字で命令を入力する画面コマンドプロンプトなど
VS Codeソースコードを書くエディター学習用として使いやすい
Windows 11今回の説明対象OS操作手順の前提環境

C言語の最初の一歩で大切なのは、完璧に理解することよりも、一度最後まで動かしてみることです。
短いプログラムでも、自分で書いて、コンパイルして、実行して、画面に結果が出る。この体験が、これから変数や条件分岐、繰り返しを学ぶためのしっかりした土台になります。