【C言語】最も基本的なhello worldプログラムを動かしてみる

この記事では、C言語のプログラミングを始めるための基本的な手順をわかりやすく解説します。

具体的には、開発環境の準備から、最初の Hello, World! プログラムの作成、コンパイルと実行の方法、そしてエラーが発生した場合の対処法までをカバーします。

初心者の方でも安心して学べるように、ステップバイステップで説明していますので、この記事を読み終える頃には、C言語の基本的なプログラムを自分で動かせるようになります。

目次から探す

開発環境の準備

C言語でプログラムを作成するためには、まず開発環境を整える必要があります。

ここでは、必要なソフトウェアのインストールから環境設定までを詳しく解説します。

必要なソフトウェアのインストール

コンパイラの選定

C言語のプログラムを実行するためには、ソースコードを機械語に変換するコンパイラが必要です。

代表的なコンパイラとしては、GCC(GNU Compiler Collection)があります。

GCCはオープンソースであり、Windows、macOS、Linuxなど多くのプラットフォームで利用可能です。

GCCのインストール方法(Windows, macOS, Linux)

Windowsの場合:

  1. MinGW(Minimalist GNU for Windows)を使用してGCCをインストールします。
  2. MinGWの公式サイト(http://www.mingw.org/)からインストーラをダウンロードします。
  3. インストーラを実行し、GCCコンパイラを選択してインストールします。

macOSの場合:

  1. Homebrewを使用してGCCをインストールします。
  2. ターミナルを開き、以下のコマンドを入力してHomebrewをインストールします。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Homebrewがインストールされたら、以下のコマンドを入力してGCCをインストールします。

brew install gcc

Linuxの場合:

  1. ターミナルを開き、以下のコマンドを入力してGCCをインストールします。
sudo apt-get update sudo apt-get install gcc

IDEの選定とインストール(Visual Studio Code, CLionなど)

プログラムの編集やデバッグを効率的に行うためには、統合開発環境(IDE)が便利です。

以下に代表的なIDEを紹介します。

Visual Studio Code:

  1. Visual Studio Codeの公式サイト(https://code.visualstudio.com/)からインストーラをダウンロードします。
  2. インストーラを実行し、指示に従ってインストールします。
  3. C/C++拡張機能をインストールします。

Visual Studio Codeを開き、拡張機能アイコンをクリックして C/C++ を検索し、インストールします。

CLion:

  1. CLionの公式サイト(https://www.jetbrains.com/clion/)からインストーラをダウンロードします。
  2. インストーラを実行し、指示に従ってインストールします。
  3. 初回起動時に必要な設定を行います。

環境設定

パスの設定(Windows)

GCCをインストールした後、コマンドラインからGCCを使用できるようにするためには、環境変数にパスを設定する必要があります。

  1. 「スタート」メニューから「システム環境変数の編集」を検索して開きます。
  2. 「環境変数」ボタンをクリックします。
  3. 「システム環境変数」セクションで Path を選択し、「編集」ボタンをクリックします。
  4. 「新規」ボタンをクリックし、GCCのインストールディレクトリ(例: C:\MinGW\bin)を追加します。
  5. OK ボタンをクリックして設定を保存します。

ターミナルの設定(macOS, Linux)

macOSやLinuxでは、ターミナルを使用してGCCを実行します。

特別な設定は不要ですが、以下のコマンドでGCCが正しくインストールされているか確認できます。

gcc --version

このコマンドを実行してGCCのバージョン情報が表示されれば、インストールは成功しています。

以上で、C言語の開発環境の準備が整いました。

次は、実際に Hello World プログラムを作成してみましょう。

Hello Worldプログラムの作成

新規ファイルの作成

ファイル名と拡張子の説明

C言語のプログラムは、通常 .c という拡張子を持つファイルに保存されます。

例えば、最初のプログラムファイル名を hello.c とすることが一般的です。

この .c という拡張子は、C言語のソースコードファイルであることを示しています。

ファイルの保存場所

プログラムファイルは、わかりやすい場所に保存することをお勧めします。

例えば、デスクトップやドキュメントフォルダに C_Projects などのフォルダを作成し、その中に保存すると良いでしょう。

これにより、後でファイルを見つけやすくなります。

コードの記述

必要なヘッダファイル

C言語のプログラムを書く際には、標準ライブラリを使用するためにヘッダファイルをインクルードする必要があります。

最も基本的なヘッダファイルは stdio.h で、これは標準入出力ライブラリを使用するためのものです。

#include <stdio.h>

main関数の定義

C言語のプログラムは、必ず main 関数から実行が開始されます。

main関数は以下のように定義します。

int main() {
    // ここにプログラムの処理を書く
    return 0;
}

int main() は、main関数が整数型の値を返すことを示しています。

return 0; は、プログラムが正常に終了したことを示すためのものです。

printf関数の使用

Hello, World! というメッセージを画面に表示するためには、 printf 関数を使用します。

printf関数は、標準出力に文字列を表示するための関数です。

printf("Hello, World!\n");

\n は改行を意味します。

これにより、メッセージの後に改行が入ります。

コード全体の解説

以上の要素を組み合わせると、最も基本的な Hello, World! プログラムは以下のようになります。

#include <stdio.h>  // 標準入出力ライブラリをインクルード
int main() {
    printf("Hello, World!\n");  // 画面にメッセージを表示
    return 0;  // プログラムの正常終了を示す
}

このプログラムは、標準入出力ライブラリをインクルードし、main関数内で Hello, World! というメッセージを表示し、正常に終了します。

これがC言語の最も基本的なプログラムです。

次に、このプログラムをコンパイルして実行する方法について説明します。

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

C言語で書かれたプログラムは、まずコンパイルというプロセスを経て実行可能な形式に変換されます。

ここでは、コマンドラインとIDEを使ったコンパイルと実行の方法について説明します。

コンパイルの方法

コマンドラインでのコンパイル

コマンドラインを使ってC言語のプログラムをコンパイルする方法を説明します。

ここでは、GCC(GNU Compiler Collection)を使用します。

  1. ターミナルを開く

Windowsの場合はコマンドプロンプトや PowerShell 、macOSやLinuxの場合はターミナルを開きます。

  1. ソースファイルのディレクトリに移動する

cdコマンドを使って、ソースファイルが保存されているディレクトリに移動します。

例えば、ソースファイルがC:\Users\YourName\Documentsにある場合は以下のように入力します。

cd C:\Users\YourName\Documents
  1. コンパイルコマンドを入力する

以下のコマンドを入力して、ソースファイルをコンパイルします。

ここでは、ソースファイル名をhello.cと仮定します。

gcc hello.c -o hello

このコマンドは、hello.cというソースファイルをコンパイルし、helloという実行ファイルを生成します。

IDEでのコンパイル

IDE(統合開発環境)を使うと、コンパイル作業がより簡単になります。

ここでは、Visual Studio Codeを例に説明します。

  1. Visual Studio Codeを開く

インストールが完了していることを前提とします。

  1. 新しいプロジェクトを作成する

「ファイル」メニューから「新しいファイル」を選択し、C言語のソースコードを入力します。

入力が完了したら、hello.cという名前で保存します。

  1. ターミナルを開く

Visual Studio Codeのメニューから「ターミナル」→「新しいターミナル」を選択します。

  1. コンパイルコマンドを入力する

コマンドラインでのコンパイルと同様に、以下のコマンドを入力します。

gcc hello.c -o hello

実行の方法

コマンドラインでの実行

コンパイルが成功したら、次にプログラムを実行します。

  1. 実行ファイルのディレクトリに移動する

既にソースファイルのディレクトリにいる場合は、このステップをスキップできます。

  1. 実行コマンドを入力する

以下のコマンドを入力して、生成された実行ファイルを実行します。

Windowsの場合:

hello.exe

macOSやLinuxの場合:

gcc hello.c -o hello
./hello

実行すると、ターミナルに Hello, World! と表示されるはずです。

IDEでの実行

IDEを使ってプログラムを実行する方法も簡単です。

  1. ターミナルを開く

既にターミナルが開いている場合は、このステップをスキップできます。

  1. 実行コマンドを入力する

コマンドラインでの実行と同様に、以下のコマンドを入力します。

Windowsの場合:
hello.exe
macOSやLinuxの場合:
./hello

実行すると、ターミナルに Hello, World! と表示されるはずです。

これで、C言語の基本的な Hello, World! プログラムのコンパイルと実行が完了しました。

次のステップでは、エラーが発生した場合の対処法について学びます。

トラブルシューティング

プログラミングを始めたばかりの頃は、エラーに遭遇することが多いかもしれません。

しかし、エラーは学びの一部であり、解決することでスキルが向上します。

ここでは、よくあるコンパイルエラーと実行時エラーの対処法について解説します。

コンパイルエラーの対処法

コンパイルエラーは、コードが正しく書かれていないためにコンパイラがプログラムを実行可能な形式に変換できない場合に発生します。

以下に、よくあるエラーメッセージとその解決方法を紹介します。

よくあるエラーメッセージとその解決方法

  1. error: expected ';' before '}' token
  • 原因: セミコロン(;)が必要な場所にない。
  • 解決方法: 該当する行にセミコロンを追加します。
printf("Hello, World!") // セミコロンがない 
printf("Hello, World!"); // セミコロンを追加
  1. error: 'printf' undeclared (first use in this function)
  • 原因: printf関数が宣言されていない。
  • 解決方法: #include <stdio.h>をコードの先頭に追加します。
#include <stdio.h> // これを追加
int main() {
	printf("Hello, World!");
	return 0;
}
  1. error: expected declaration or statement at end of input
  • 原因: 中括弧({})の対応が取れていない。
  • 解決方法: 開き中括弧と閉じ中括弧の数を確認し、対応を取ります。
int main() { 
printf("Hello, World!"); // 閉じ中括弧がない 
int main() {
 printf("Hello, World!"); 
} // 閉じ中括弧を追加

実行時エラーの対処法

実行時エラーは、プログラムがコンパイルされた後、実行中に発生するエラーです。

これらのエラーは、プログラムのロジックやデータの扱いに問題がある場合に発生します。

よくあるエラーメッセージとその解決方法

  1. Segmentation fault (core dumped)
  • 原因: 無効なメモリアクセス(例: NULLポインタの参照)。
  • 解決方法: ポインタの初期化やメモリの確保を確認します。
int *ptr = NULL;
*ptr = 10; // NULLポインタの参照
int value = 10;
int *ptr = &value; // ポインタを初期化
*ptr = 10; // 正常なメモリアクセス
  1. Floating point exception
  • 原因: 0での除算などの不正な浮動小数点演算。
  • 解決方法: 除算の前にゼロチェックを行います。
int a = 10, b = 0;
 int c = a / b; // 0での除算(エラー発生)
// ゼロチェックを追加
if (b != 0) {
	int c = a / b; 
}
  1. Bus error
  • 原因: メモリのアライメントが正しくない。
  • 解決方法: 正しいメモリアクセスを確認します。
char *ptr;
int *int_ptr;
ptr = (char *)malloc(sizeof(int));
int_ptr = (int *)ptr;
*int_ptr = 10; // 正しいメモリアクセス

エラーに遭遇した際は、エラーメッセージをよく読み、原因を特定することが重要です。

エラーメッセージは問題の箇所や原因を示していることが多いので、冷静に対処しましょう。

まとめ

今回学んだことの振り返り

今回の記事では、C言語の最も基本的なプログラムである Hello, World! を実際に動かすための手順を詳しく解説しました。

以下に、今回学んだ主要なポイントを振り返ります。

  1. 開発環境の準備:
  • 必要なソフトウェアのインストール方法について学びました。

特に、GCCコンパイラのインストール方法や、Visual Studio CodeやCLionなどのIDEの選定とインストール方法を解説しました。

  • 環境設定についても触れ、Windowsでのパスの設定や、macOSおよびLinuxでのターミナルの設定方法を説明しました。
  1. Hello Worldプログラムの作成:
  • 新規ファイルの作成方法について学びました。

ファイル名と拡張子の説明、そしてファイルの保存場所についても解説しました。

  • 実際にコードを記述し、必要なヘッダファイル、main関数の定義、printf関数の使用方法について詳しく説明しました。
  • コード全体の解説を通じて、各部分がどのように機能するかを理解しました。
  1. プログラムのコンパイルと実行:
  • コマンドラインおよびIDEでのコンパイル方法について学びました。
  • コマンドラインおよびIDEでの実行方法についても解説しました。
  1. トラブルシューティング:
  • コンパイルエラーや実行時エラーの対処法について学びました。

よくあるエラーメッセージとその解決方法を具体的に説明しました。

次に学ぶべきステップ

Hello, World! プログラムを理解し、実行できるようになったら、次に進むべきステップとして以下の内容を学ぶことをお勧めします。

  1. 基本的なデータ型と変数:
  • C言語の基本的なデータ型(int, float, charなど)と変数の宣言・初期化方法を学びましょう。
  1. 制御構文:
  • if文switch文、forループ、whileループなどの制御構文を学び、プログラムの流れを制御する方法を理解しましょう。
  1. 関数の定義と呼び出し:
  • 関数の作成方法と呼び出し方法を学び、コードの再利用性を高める方法を理解しましょう。
  1. 配列とポインタ:
  • 配列の使い方とポインタの基本を学び、メモリ管理の基礎を理解しましょう。
  1. 構造体と共用体:
  • 構造体と共用体の使い方を学び、複雑なデータ構造を扱う方法を理解しましょう。
  1. ファイル入出力:
  • ファイルの読み書き方法を学び、データの永続化方法を理解しましょう。

これらのステップを順に学んでいくことで、C言語の基礎をしっかりと身につけることができます。

継続的に学習を進め、実際にコードを書いてみることで、理解を深めていきましょう。

目次から探す