C言語とは【初心者向け】

※この記事は「2021年5月1日」に更新しました。

今回は、C言語について。

非常に歴史のあるプログラミング言語で、他の言語のベースになっていることが多いです。

こういう理由から、プログラマーや SE(システムエンジニア)になるような方は、まず C言語から勉強しようと言われていました。

私も最初に学習したプログラミング言語は、C言語です。

しかし、一方でむずかしいとか開発したいものがなかなかできないといった理由で敬遠されがちな言語でもあります。

ただ、古典的なことからも非常に多くのことが学べます。

実際に他の言語のベースになっていたり、高速で動くことから、C言語が活用される場面はまだまだあります。

スクリプト言語しか経験していない方は特に始めてみると新たな発見があるかもしれません。

C言語とは【初心者向け】

C言語とは

C言語とは、1972年頃にアメリカのベル研究所のデニス・リッチーが主体となって開発された汎用プログラミング言語です。

当時、アセンブラ言語で書かれていた UNIX を高水準言語で設計しなおすのが目的です。

OS(基本ソフト)の開発のために使われる、プログラマーがプログラミングするために言語です。

実は、高性能、高品質のソフトウェアを開発する上で、C言語の知識は必要なものです。

「今更、C言語なんて」

そう思う方もいるかもしれませんが、世の中に良質なプログラムを普及するためには、時間をかけることも必要だと思っています。

C言語の特徴

C言語の特徴は、以下の通りです。

  • 手続き型のコンパイル言語
  • 高速かつコンパクトなプログラムが作成できる
  • プラットフォームに依存しないので移植性が高い
  • GUI をつくるのは苦手

順番に見ていきましょう。

手続き型のコンパイラ言語

C言語は、手続き型のコンパイル言語です。

手続き型であり、手順に沿って作っていけるものです。

上から順番に処理していくことや条件分岐、繰り返し処理など、私たちの日常生活に近い感覚でプログラミングができるというわけです。

コンパイラ言語というのは、コンパイルという翻訳作業が必要です。

つまり、C言語で人間がソースファイルを作成して、そのファイルをコンパイルして、機械語のファイルを作成します。

機械語というのは、コンピュータが理解できる言葉のことです。

プログラムを一気に機械語に変換してから実行するプログラミング言語ということです。

ちなみにスクリプト言語という 1文1文解釈しながら実行するプログラミング言語もあります。

PHP や Python は、スクリプト言語です。

高速かつコンパクトなプログラムが作成できる

C言語は、高速かつコンパクトなプログラムが作成できます。

先程、紹介したコンパイラ言語ということもあり、動作が高速です。

私が大学4回生のときの話で、内容は詳しく覚えていないのですが、何かの級数展開の計算で、スクリプト言語で試すとおそろしく時間がかかって、C言語で試すと嘘のように終わったということがありました。

その頃は、あまりありがたみもわかっていなかったのですが、とにかく速いです。

こういった理由から負荷がかかるような処理をする場合、非常に有効です。

また、ハードウェアのリソースが少なくて済むのも良いところで、たいした環境がなくてもサクサク動いてくれるプログラミング言語です。

プラットフォームに依存しないので移植性が高い

C言語は、プラットフォームに依存しません。

Windows でも Mac でも開発できます。

コンパイルするプログラムがあれば、どんな環境でも実行することができます。

GUI をつくるのが苦手

C言語は、GUI(グラフィカルユーザインターフェース)をつくるのが苦手です。

今ならもっと便利なプログラミング言語がたくさんあります。

また、細かい部分を最初からつくっていく必要があったり、CPU や メモリ など、コンピュータのハードウェアを意識してプログラミングする必要がある言語です。

どうしても開発に時間がかかるので、途中で挫折してしまう人も多いというわけです。



C言語を学習するためには

C言語を学習するためには、コンパイラを用意する必要があります。

あと、コードを書くためのエディタも必要です。

  • コンパイラ
  • エディタ

コンパイラは、私の時代だと、Borland C++ Compiler 5.5(BCC32)を使っていました。

エディタは、高機能エディタであれば、好みのものを使えば良いと思います。

  1. エディタでプログラムを作成してファイルを保存する
  2. プログラムをコンパイルする
  3. プログラムを実行する

これが学習の一連の流れです。

ちなみに、今は、便利な統合開発環境(Cloud9など)があるので、環境構築が面倒な方はそちらを使っても良いかと思います。

簡単な C言語プログラムの紹介

簡単な C言語プログラムを紹介します。

#include <stdio.h>

int main(void)
{
  printf("Hello World!");

  return 0;
}

C言語は、必ず 1つ以上の関数で構成されています。

そして、関数は 1つ以上の文(ステートメント)で構成されています。

main関数は、プログラムの実行開始点です。

ちなみに 1行目は、標準入出力をするためのヘッダファイルをインクルードするという意味です。

実行すると以下のように表示されます。

Hello World!

最後に【C言語とは】

いかがでしょうか。

次回は、C言語の開発環境を構築する方法を解説します。

C言語の開発環境を構築【MinGW編】

C言語の開発環境を構築【MinGW編】

2020年4月10日

今から C言語を学習するのは、非効率だと言う方もなかにはいますが、私は経験すること自体に意味があると思っています。

もちろん、なんでも C言語で開発した方が良いと言っているわけではありません。

ほとんどのプログラミング言語のベースになっているものなので、比較対象として学習した方が良いと思っているだけです。

これは私も含めての話ですが、インターネットやソフト開発の世界は、進化が早すぎて、人間が技術に追いついていないケースがほとんどです。

しっかりとした土台がないと高品質なものは生まれないと思っています。

今からプログラミングを始める方も他のプログラミング言語を経験した方も挑戦してみませんか?