プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • C言語
  • 【C言語】C言語の特徴、標準ライブラリ、C++の特徴、Visual C++の特徴
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【C言語】C言語の特徴、標準ライブラリ、C++の特徴、Visual C++の特徴

03.16

  • miyabisan2
  • コメントを書く

この記事は3分で読めます

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言語】メモリの基本、メモリを扱う関数

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++を用いて開発されています。

スポンサーリンク
  • 2019 03.16
  • miyabisan2
  • コメントを書く
  • C言語
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2019 03.02

    【C言語】変数の型、文字列型について

  2. 2019 03.17

    【C言語】「ナル文字」について

  3. 2019 03.17

    【C言語】ポインタの基本や「ポインタ演算」、「ヌルポインタ」について

  4. 2019 03.05

    【C言語】「ヘッダーファイル」、「プリプロセッサ」や「マクロ処理」について

  5. 2019 03.06

    【C言語】「ビルド」作業の知識と効率化について(make等)

  6. 2019 03.05

    【C言語】「コンパイラ」、「リンカ」の役割

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【C++】「ライブラリ(スタティックライブラリ、DDL…

【C言語】「配列」利用における注意点

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • API
  • AWS
  • C++
  • CSS
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Git
  • GitLab
  • GraphQL
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • WebRTC
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー