C言語の歴史
発表年 | 名前 | 特徴 |
---|---|---|
1989年 | ANSI C(C89/90) | ・世界でつい最近まで最も普及して使われてきた。
・「プロトタイプ宣言」がサポートされた。 |
1995年 | C95 | 「ワイド文字」が登場し、日本語が扱いやすくなった。 |
1999年 | ISO-C99 | 細かい文法が修正された。 |
2011年 | C11 | マルチスレッド、Unicode、共用体等が実装された。 |
C言語の特徴
C言語が他の言語と大きく差別化されている点としては、高級言語でもあり、低級言語でもある点でしょう。
高級言語と低級言語の違いは下記の記事で解説しています。
CPUやメモリを自由に制御できる「低級言語」の性質を持つ、高級言語なので、普通は用途として使われないようなOSの開発にC言語は使われたりします。(例えば、UNIXの開発にはC言語が使われています。)
C言語を学ぶ上でのメリット
- CPUや、メモリを自由自在に制御することができる。
- PC以外の機械の制御に使うことができる。
- コンピュータアーキテクチャについても学ぶことができる。
C言語の開発ツール
テキストエディタ
C言語は、メモ帳でも開発できますが、できるだけエディタを使いましょう。キーワードや、コメントハイライト、入力補完等、コード入力において非常に助けとなります。
- Atom
- Notepad++
- Visual Studio Code
コンパイラ
- GCC
- Clang
- Visual C++
標準ライブラリ
stdio.h
printf(書式文字列,表示したい変数)
書式文字列の中には、プレースホルダという動的に表示文字列を変更させることができる内容も含めることができます。
プレースホルダ | データ型 | 説明 |
---|---|---|
%d | char,int等 | 整数 |
%ld | long | 整数 |
%f | float,double | 小数 |
%c | char | 文字 |
%s | String(char配列) | 文字列(通常の配列は表示できないが、char配列のみこれで表示できる。) |
%p | void* | アドレス |
string.h
memcpy等、メモリ関連の関数が多く含まれています。
詳しくは下記の記事で解説しています。
C++の年表
年 | 名前 | 説明 |
---|---|---|
1979年 | C with Classes | オブジェクト指向の導入 |
1984年 | C++ | |
1998年 | C++98(ISO/IEC 14882:1998) | テンプレート、STLの導入 |
2003年 | C++03(ISO/IEC 14882:2003) | |
2011年 | C++11(ISO/IEC 14882:2011) | 正規表現、スレッド、ラムダ等の導入 |
2014年 | C++14(ISO/IEC 14882:2014) |
なお、C++11で導入された多くの機能は、それまではBoostというC++の準標準のライブラリで多く実装されていたので、こちらを使うのが当たり前になっていました。
C++の言語の方向性
上記の年表のように、年々バージョンアップしてきていますが、C++が一番重視している方向性としては「後方互換性」になります。
C++で書いた古いプログラムでも、新しい環境で動くので、数年でリプレイスするのではなく、長期間にわたって動くシステムを構築する場合はかなり適した言語といえるでしょう。
Visual C++の特徴
.NET Framework上で動くが、C#やVB.NET等の他の.NET言語と違い、.NET Frameworkを利用しなくても動作するアプリも作成可能
そのためには、Microsoft Foundation Class(MFC)というクラスを利用したアプリを作れる必要があります。
C++は、VBやC#と異なりどのような場面で選択したらよいか
例えば、下記のような処理は標準の.NET Frameworkのライブラリでは対応していません。C++から操作できる「Windows API」や、MFCといった技術を習得して使える必要があります。
- パソコン周辺機器との接続のためのドライバを作成したい
- iniファイルの読み書きできるものを作りたい
OSの機能を十二分に使えるので、我々がよく使うようなOffice等もVisual C++を用いて開発されています。
この記事へのコメントはありません。