誰でも分かるC言語入門
■第1話:C言語での開発の準備
(最終更新日:2024.04.07)
(絵が小さい場合はスマホを横に)
「まずはC言語!」
C言語は1972年にデニス・リッチーによって開発されたプログラミング言語で、
システム開発からアプリケーション開発まで広範囲にわたり活用されている。
低水準の操作が可能でありながら、汎用性が高く、効率的なコードが書けることが特徴だ。
C言語はそのシンプルな構文とポータビリティの高さから、オペレーティングシステムや組み込みシステムの開発に広く使われており、
現代の多くの言語に影響を与えた歴史的重要性を持つ言語だ。
ポインタや直接的なメモリ管理の概念を通じて、プログラマはハードウェアに近いレベルでの制御が可能となることも魅力だ。
50年以上の長きに渡り、使われ続けているC言語について、今回から数回に分けて学んでいこう。
1.C言語とは何か?
C言語は、1972年にAT&Tベル研究所のデニス・リッチーによって開発されたプログラミング言語だ。
システムプログラミングやアプリケーションプログラミングに広く使われており、後の多くの言語に影響を与えた。
C言語はハードウェアに近い低水準の操作が可能でありながら、汎用性が高い高水準の記述も可能な、いわゆる「中間言語」とも呼ばれる特性を持っている。
C言語は、それ以前に使われていたB言語を発展させたもので、UNIXオペレーティングシステムの開発とともに成長した。
C言語によるUNIXの開発は、ポータビリティと効率性を重視するプログラミング言語の重要性を広く認識させるきっかけとなった。
以下、C言語の特性を列挙した。
- ■C言語の特性
- ポータビリティ:異なるシステム間でのプログラムの移植が容易
- 効率性と速度:コンパイルされたC言語のプログラムは、低レベル言語に近い効率性と速度で実行
- 柔軟性:ハードウェアに直接アクセスすることができるため、システムプログラミングに適する
- シンプルな構文:習得が比較的容易で、広範なアプリケーションに使用される
そして、これからなぜC言語を学ぶのかというと、1つ目にプログラミング、コンピューターサイエンスの基礎を学べるということが挙げられる。
メモリ管理、ポインタなどの概念は他の多くの言語でも応用され、この概念を最初に学ぶことは非常に重要だ。
2つ目にC言語自体の応用範囲が広いということが挙げられる。
オペレーティングシステム、組み込みシステム、デスクトップアプリケーションなど、多岐にわたる領域で活躍しており、学ぶ意義は大きい。
3つ目に、C++やObjective-Cなど、C言語に影響を受けた他の言語を習得する際にもアドバンテージになる。
C言語を使えるようになっていれば、これらの言語も抵抗なく学ぶことができる。
このようにC言語を学ぶことは、プログラミングの基本的な概念を理解し、コンピュータの動作原理について深く理解するための重要なステップになる。
また、現代の多くの技術基盤がC言語で構築されているため、その知識は今日の技術環境においても非常に価値がある。
C言語は様々なアプリケーションで使われる
2.開発環境のセットアップ
C言語の開発環境をセットアップする際には、エディタ、コンパイラ、デバッガなどが必要だ。 ここでは、Windows、macOS、Linuxの三つの主要なオペレーティングシステムにおけるC言語の開発環境のセットアップ方法について説明する。
- ■Windowsでのセットアップ
- MinGWインストーラーのダウンロード:MinGW (Minimalist GNU for Windows) のインストーラーをダウンロードする
- インストール:VS CodeでC/C++拡張機能をインストールする
- 柔軟性:ハードウェアに直接アクセスすることができるため、システムプログラミングに適する
- パスの設定:インストール後、MinGWのbinディレクトリをシステムの環境変数PATHに追加する
- VS Codeのインストール:VS Codeをダウンロードし、インストールする
- インストール:インストーラーを実行し、mingw32-base, mingw32-gcc-g++, msys-base などの必要なパッケージをインストールする
- C/C++拡張機能のインストール:ハードウェアに直接アクセスすることができるため、システムプログラミングに適する
- ターミナルを開き、gcc -v を実行:正しくインストールされていることを確認する
■エディタの設定(以下のMacOS、Linuxもエディタの設定はこれと同じ)
- ■macOSでのセットアップ
- ターミナルを開く:xcode-select --install コマンドを入力し、Xcode Command Line Toolsをインストールする
- 確認:インストール後、gcc -v でGCCのバージョンを確認する
- ■Linuxでのセットアップ
- ターミナルを開く:次のコマンドでGCCをインストールする。sudo apt install build-essential(Debian/Ubuntu系)、sudo dnf install gcc gcc-c++ make(Red Hat/Fedora系)
- 確認:gcc -v でインストールされたGCCのバージョンを確認する
これらのステップにより、各OSでC言語の開発環境を構築できる。 開発環境が整えば、C言語のコードを書き、コンパイルし、実行することが可能になる。 プログラミングを学ぶ過程で、コードの編集やデバッグの効率を上げるために、IDE(統合開発環境、例えばVSCode)の利用も検討しよう。
3.はじめてのCプログラム("Hello, World!")
「はじめてのCプログラム」として、"Hello, World!" プログラムを紹介する。
このプログラムで、基本的な構文を理解し、開発環境が正しく設定されていることを確認する。
ここでは、"Hello, World!" プログラムのコードと、それがどのように機能するかを説明する。
ちなみに、下記コードはhello.cと名前をつけて保存したものとする。
プリプロセッサディレクティブ: <#include stdio.h> は、
プリプロセッサディレクティブであり、標準入出力に関連する機能を提供するヘッダーファイル stdio.h をプログラムに含む。
printf 関数など、入出力に関連する関数がこのファイルで定義されている。
main関数: C言語のプログラムは main 関数から実行が始まる。
ここでは、main 関数が整数を返すことを示す int で宣言されている。
プログラムが正常に終了したことを示すために、return 0; が使用されている。
printf関数: printf("Hello, World!\n"); 行は、画面にテキストを出力する printf 関数を呼び出している。
この場合、Hello, World! という文字列が出力され、\n は改行を表す。
Hello, World!をC言語で
コンパイル: ターミナルまたはコマンドプロンプトを使用して、ソースファイル(例: hello.c)をコンパイルする。
GCCを使用する場合のコマンドは gcc hello.c -o hello を命令する。
これにより、実行可能なファイル hello(またはWindowsでは hello.exe)が生成される。
実行:コンパイル後、生成された実行可能ファイルを実行する。
LinuxやmacOSでは ./hello、Windowsでは hello.exe をターミナルまたはコマンドプロンプトで実行する。
"Hello, World!" プログラムは、C言語の基本的な構文とプログラムの構造を理解するための最初のステップとして非常に役立つ。
このプログラムを作成し、コンパイルして実行することで、開発環境が適切にセットアップされていることを確認できる。
4.まとめ
今回はC言語の概要から始めて、その歴史、特徴を解説した。 開発環境のセットアップ方法をWindows、macOS、Linuxの三つの主要なオペレーティングシステムで説明し、 基本的なプログラムの構造として「Hello, World!」プログラムを紹介した。 このプログラムは、単純ながらC言語のコーディングと実行の流れを理解する上で重要であり、 プログラミング初心者にとって理想的な出発点となる。 これらの内容を通じて、読者はC言語の基礎知識を身につけ、プログラミングの第一歩を踏み出す準備ができる。
▼参考図書、サイト
「かんたん C言語」 大川内 隆朗 技術評論社
「12歳からはじめる ゼロからのC言語ゲームプログラミング教室」 リブロワークス