C 言語の基礎 - C 言語を理解する

目次

1.1: C言語の歴史

        1.1.1: 起源

        1.1.2: 標準化

1.2: C言語の長所と短所

        1.2.1: C言語の利点

        1.2.2: C言語の欠点

        1.2.3: C言語を効率的に使用する


1.1: C言語の歴史

        1.1.1: 起源

C 言語は、ケン トンプソンデニス リッチー、その他の同僚        によるベル研究所のUnix オペレーティング システム開発の副産物でした。

        1.1.2: 標準化

        K&R: 1970 年代にも C 言語は発展を続け、1978 年にはブライアン・カーニハンデニス・リッチーが共編集した『The C Programming Language』という著作が出版されました。この本は出版されるやいなや、すぐに C プログラマー向けのマニュアルになりました。そして、当時は C 言語の正式な標準がなかったため、この本が事実上の標準となりました。

        ANSI C (Standard C): 1983 年に米国規格協会 (ANSI) が C 言語標準の編集を開始し、数回の改訂を経て 1988 年に完成し、1989 年 12 月に正式に採用されました。国際標準化機構 (ISO) は 1990 年にこの規格を採用しました。

1.2: C言語の長所と短所

        1.2.1: C言語の利点

  • 効率:これは C 言語本来の利点の 1 つです。C 言語はもともとアセンブリ プログラムを作成するために使用されていたため、アセンブリ プログラムを迅速に実行し、限られたメモリを占有することが特に重要です。
  • 移植性: C 言語は移植性に優れており、さまざまなオペレーティング システム下で、簡単な変更または変更なしでクロスプラットフォームのプログラム開発を実行できます。
  • 強力: C 言語には膨大なデータ型と演算子のセットがあり、これにより C 言語は表現力が強力になります。
  • 柔軟性: C 言語は文法が折衷的であり、元の文法に基づいて作成および合成されるため、プログラマにはより多くの余地が与えられます。
  • 標準ライブラリ: C 言語の優れた利点の 1 つは、入出力、文字列処理、ストレージ割り当て、その他の操作のための数百の関数が含まれる標準ライブラリです。
  • Unix システムとの統合: C 言語は、Unix システムとの統合において特に強力です。実際、一部の Unix ツールは、ユーザーが C を知っていることを前提としています。

        1.2.2: C言語の欠点

  • C にはバグが多い可能性があります。Cは柔軟性があるため、バグの多い言語になります。他の言語で見つかるプログラミング エラーの多くは、C コンパイラでは検出できません。この点で、アセンブリ言語はプログラムが実行されるまでほとんどのエラーを検出できないという点で、C はアセンブリ言語に非常に似ています。さらに悪いことに、C 言語には、検出が容易ではない隠れた危険が数多く含まれています。
  • C は理解するのが難しい場合があります。Cはほとんどの点で小さな言語ですが、他の汎用言語にはない (そしてしばしば誤解されている) 多くの機能もあります。これらの機能はさまざまな方法で組み合わせることができますが、その中にはプログラマにとっては明らかでも、他の人にとっては理解するのが難しいものもあります。もう 1 つの問題は、C プログラムの簡潔な性質です。
  • C プログラムは修正が困難な場合があります。Cで大規模なプログラムを作成する場合、メンテナンスを考慮した設計を行わないと、修正が困難になります。最新のプログラミング言語は通常、「モジュール」(「ユニット」または「パッケージ」)と呼ばれる言語機能を提供しており、これにより大規模なプログラムを管理可能な多数のチャンクに分割できます。残念ながら、C 言語にはまさにこの機能がありません。

        1.2.3: C言語を効率的に使用する

  • C 言語の落とし穴を避ける方法を学びましょう: Andrew Koenig の著書「C Pitfalls and Pitfalls」を参照してください。最新のコンパイラは一般的な欠陥を検出して警告を発行しますが、すべての欠陥を検出できるコンパイラはありません。
  • 既存のコード ベースを活用する:誰もが C を使用していることは利点であり、他の人が書いたコードを自分のプログラムに使用することは非常に良い考えです。C コードは多くの場合、ライブラリ (関数のコレクション) にパッケージ化されます。適切なライブラリを入手すると、エラーが大幅に減少し、プログラミングの労力を大幅に節約できます。
  • 現実的な一連のコーディング規約を採用する:コーディング規約は、言語自体が義務付けていない場合でも、プログラマーが従う必要がある一連の設計ガイドラインです。適切な仕様を指定すると、プログラムがより均一になり、読み取りや変更が容易になります。どのプログラミング言語でも、特に C 言語を使用するには仕様が必要です。前述したように、C 言語自体は柔軟性が高いため、プログラマが作成したコードは理解しにくくなっています。
  • Classic C ではなく、Standard C を使用する: Standard C は、単なる Classic C の改良版ではありません。Standard C には、コンパイラがエラーをチェックできるようにする多くの機能が追加されていますが、Classic C はこの問題を無視します。 
  • 非移植性を避ける:ほとんどの C コンパイラは、標準 C の一部ではない機能やライブラリ関数を提供します。どうしても必要な場合を除き、これらの機能やライブラリ関数の使用は避けることをお勧めします。

おすすめ

転載: blog.csdn.net/m0_74436212/article/details/131216144