Cの導入

C言語の基礎知識等
こんなもの見てる人だったら一度は見たことのあることばかりだと思います。

Cの歴史

さらーっと書いておきます。
Cは、1972年にベル研究所がB言語を基に作ったプログラミング言語です。
その汎用性の高さから様々な場面で使われるようになり、
現在でもそのシンプルさと高速さから、特に小規模開発や業務向け開発、
プロジェクトのベースとなるような部分で多用されています。


Cの特徴

他の言語を既に習得している人には、当たり前に映ることも多いと思いますが、
それはCに影響を受けている言語が非常に多いからです。

  • 小文字でプログラムを書く/小文字と大文字が区別される
  • 簡潔な表現ができる
  • 多くの演算子
  • 関数の組み合わせによるプログラムの構成
  • 「行」の無視
  • 言語仕様が非常にコンパクト
    • 言語処理系自体に入出力機能がない
  • 「ポインタ」という概念

まとめとしては、覚えることは非常に少ないですし、
シンプルな構文を持っていますが使いこなすのは非常に難しい言語です。
また、「ポインタ」という概念によりハードウェアに対し直接的な操作ができます。
逆に、ハードウェアを暴走させるのも簡単な言語です。


Cの現在

前述の通り、現在でも様々な場面で使われていますが、 Cにオブジェクト指向を追加した後方互換性のある言語である C++に代わられることも多いです。 ハードウェアを暴走させるのも簡単というCの欠点を克服した言語や Cから受けた言語もたくさんあり(もちろんC++も)、 そのような言語の習得を楽にするために学ばれることも多くなっています。


Standard C(標準C)

実は、Cは生み出された時に正確な定義と言うものがありませんでした。
開発者自身が書いた「The C programming Langage」が唯一Cを定義したものでした。 しかしこの本も曖昧な部分が多く、「UNIXで動いてるCがC」というような状態でした。 そのためUNIXから移植されたCはそれぞれ微妙に異なるCとなってしまい、混乱を招きました。
これでは困るとANSIが動き、1989年にANSI C(アンシ シー)としてCは正確に定義されました。
これが初めて定義された標準となるCです。C89とも呼ばれます。
その後いくらかのバージョンアップを経て、現在最新の標準Cは、 2011年に定義されたC11と呼ばれるものになっています。
@LinksではこのANSI CとC11をCの基準として記述することにします。