Windows環境でのC言語:プログラムの作成から実行まで

【概要】本資料は、Windows環境でC言語プログラミングを始めるための入門教材である。Visual Studio Build Toolsを用いた開発環境の構築から、コンパイル・実行の基本操作、標準入出力を扱うプログラムの作成までを扱う。

スライドによる説明: [PDF], [PPTX]

項目 内容
対象読者 C言語を初めて学ぶ学生。Windowsの標準機能(メモ帳)を使って、手軽にC言語プログラミングの基礎を体験したい人。
前提条件 Windowsの基本操作(ファイル作成、コマンドプロンプトの起動)ができること
学習目標 C言語のソースコードをコンパイルして実行できる。標準入力からデータを読み取るプログラムを作成できる。

【重要概念】

【目次】

  1. はじめに
  2. コンパイルとは何か
  3. 最初のプログラム
  4. 開発環境の準備
  5. メモ帳でのプログラム作成と保存
  6. コンパイルと実行
  7. キーボード入力のプログラム
  8. よくあるエラーとその対処法
  9. まとめ

1. はじめに

この資料では、C言語のプログラムをWindowsで作成し、動かす方法を学ぶ。

プログラミングを始めようと思ったとき、「どのように操作したらよいのだろう」「専用のツールが必要なのでは」と不安になることがある。しかし、心配は不要である。Windowsに標準で搭載されているメモ帳と、無料でインストールできるVisual Studio Build Toolsがあれば十分である。

まずは簡単なプログラムから始める。「Hello, World!」と表示するプログラムを動かしたり、キーボードからの入力を処理するプログラムを実行したりできる。ここで学ぶメモ帳の使い方とプログラムのコンパイル・実行方法は、プログラミングの基礎となる重要な知識である。

2. コンパイルとは何か

C言語では、実行前にソースコードを機械語(CPUが実行できる形式)に変換する。この変換処理を「コンパイル」と呼ぶ。

作業手順

  1. コードを書く(hello.c)
  2. cl hello.c でコンパイル → hello.exe が生成される
  3. hello.exe で実行

コードを修正した場合は、再度コンパイルしてから実行する。

3. 最初のプログラム

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

各行の役割

コード 役割
#include <stdio.h> printf 関数を使うために必要
int main() プログラムの実行開始位置
printf("Hello, World!\n"); 文字列を画面に出力する。\n は改行。末尾にセミコロンが必要。
return 0; プログラムの終了

上記のコードをテキストエディタで作成し、hello.c という名前で保存する。

4. 開発環境の準備

4.1 オンライン環境

インストール不要で、ブラウザ上でコンパイルと実行ができる。

VisuAlgo はアルゴリズムとデータ構造のデモサイト

4.2 ローカル環境の構築

  1. Windowsで、管理者権限でコマンドプロンプトを起動する(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」
  2. winget(Windowsパッケージマネージャー)が利用可能か確認する:
    winget --version
    wingetのバージョン確認コマンドを実行した結果の画面
  3. 以下のコマンドを管理者権限コマンドプロンプトで実行する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。

    REM VC++ ランタイム
    winget install --scope machine --accept-source-agreements --accept-package-agreements --silent --id Microsoft.VCRedist.2015+.x64
    
    REM Build Tools + Desktop development with C++(VCTools)+ 追加コンポーネント(一括)
    winget install --id Microsoft.VisualStudio.2022.BuildTools ^
      --override "--passive --wait --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.ComponentGroup.ClangCL --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.Windows11SDK.26100"

    --add で追加されるコンポーネント

    上記のコマンドでは,まず Build Tools 本体と Visual C++ 再頒布可能パッケージをインストールし,次に setup.exe を用いて以下のコンポーネントを追加している。

    • VCTools:C++ デスクトップ開発ワークロード(--includeRecommended により、MSVC コンパイラ、C++ AddressSanitizer、vcpkg、CMake ツール、Windows 11 SDK 等の推奨コンポーネントが含まれる)
    • VC.Llvm.Clang:Windows 向け C++ Clang コンパイラ
    • ClangCL:clang-cl ツールセットを含むコンポーネントグループ(MSBuild から Clang を使用するために必要)
    • VC.CMake.Project:Windows 向け C++ CMake ツール
    • Windows11SDK.26100:Windows 11 SDK(ビルド 10.0.26100)

    インストール完了の確認

    winget list Microsoft.VisualStudio.2022.BuildTools

    上記以外の追加のコンポーネントが必要になった場合は Visual Studio Installer で個別にインストールできる。

4.3 インストールの確認

インストール完了後、スタートメニューから「x64 Native Tools Command Prompt for VS 2022」を検索し、起動できることを確認する。

5. メモ帳でのプログラム作成と保存

5.1 メモ帳の起動

  1. スタートメニュー(画面左下のWindowsマーク)をクリックする
  2. メモ帳」と入力する
  3. スタートメニューでメモ帳を検索した画面
  4. 「メモ帳」アプリが表示されるので、クリックして起動する

5.2 プログラムの入力

セクション3で示したプログラムを入力する(または貼り付ける)。

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

5.3 プログラムの保存

  1. 「ファイル」メニューから「名前を付けて保存」を選択する
    メモ帳のファイルメニューから名前を付けて保存を選択する画面
  2. 保存場所を選ぶ。初心者には「デスクトップ」を推奨する
  3. 画面下の「ファイルの種類」を「すべてのファイル(*.*)」に変更する
    • 初期設定の「テキスト文書(*.txt)」のままだと、ファイル名に自動的に「.txt」が追加されてしまい、「hello.c.txt」のようになってしまう。これを防ぐため、必ず「すべてのファイル(*.*)」に変更する
    保存ダイアログでファイルの種類をすべてのファイルに変更した画面
  4. ファイル名を「○○○.c」と入力する
    • ○○○は任意の名前(例:hello)
    • .cはC言語のソースコードであることを示す拡張子(ファイルの種類を表す部分)である。この拡張子により、ファイルがC言語のプログラムとして認識される
  5. 「保存」をクリックする

6. コンパイルと実行

6.1 開発者コマンドプロンプトの起動

スタートメニューから「x64 Native Tools Command Prompt for VS 2022」を選択する。

6.2 ソースコードのあるフォルダへ移動

cdコマンド(フォルダ間を移動する命令)を使用する。デスクトップに保存した場合は、以下のように入力する:

cd /d c:%HOMEPATH%\Desktop

または、ユーザー名を直接指定する場合:

cd C:\Users\ユーザー名\Desktop

フォルダ名にスペースや日本語が含まれる場合は、「"」で囲む。例:

cd "C:\Users\ユーザー名\Desktop\C言語練習"

6.3 コンパイル

cl hello.c

/out:hello.exe が表示されれば成功。error が表示された場合はソースコードに誤りがある。

6.4 実行

hello.exe

Hello, World! が表示されれば成功。

プログラム名は作成時に付けた名前である。大文字と小文字は区別されるため注意が必要である(「Hello.c」と「hello.c」は異なるファイルとして扱われる)。

7. キーボード入力のプログラム

キーボードから入力された文字のバイト数を数えるプログラムを作成する。

#include <stdio.h>

int main() {
    int c;
    int count = 0;

    while ((c = getchar()) != EOF) {
        count = count + 1;
    }

    printf("バイト数: %d\n", count);
    return 0;
}

各行の解説

コード 解説
int c; 読み取った文字を格納する変数
int count = 0; バイト数を数えるカウンタ
while ((c = getchar()) != EOF) 1バイト読み取り、EOF(End of File、入力の終わり)でなければループを続ける
count = count + 1; カウンタを増やす
printf("バイト数: %d\n", count); バイト数を出力する

実行例

cl count.c
count.exe
a b c d
^Z
バイト数: 8

入力の終わりを伝えるには、行の先頭で Ctrl+Z を押し、Enter を押す。

8. よくあるエラーとその対処法

8.1 コンパイルエラー

エラーメッセージには行番号が含まれる。該当行を確認して修正し、再度コンパイルする。

例:hello.c(5): error C2065: 'prntf': undeclared identifier

→ 5行目の prntf が誤り(正しくは printf)

例:hello.c(4): error C2146: syntax error: missing ';' before identifier 'return'

→ 4行目の末尾にセミコロンが欠落している

8.2 「'cl' は内部コマンドまたは外部コマンド...」と表示される場合

8.3 「No such file or directory」または「ファイルが見つかりません」と表示される場合

8.4 リンクエラー(LNK2019, LNK1120など)

8.5 「アクセスが拒否されました」と表示される場合

8.6 文字化けが発生する場合

9. まとめ

項目 内容
コンパイル cl ファイル名.c
実行 ファイル名.exe
エラー対処 エラーメッセージの行番号を確認して修正
入力終了 Ctrl+Z → Enter

サイト内の関連ページ