いくつかのプログラミング言語を紹介します - C言語

いくつかのプログラミング言語を紹介します - C言語

C言語

導入

C言語はプロセス指向のコンピュータプログラミング言語であり、C++、C#、Javaなどのオブジェクト指向プログラミング言語とは異なります。C 言語の設計目標は、簡単な方法でコンパイルでき、低レベルのメモリを処理でき、生成するマシンコードが少量だけで、オペレーティング環境のサポートなしで実行できるプログラミング言語を提供することです。

C 言語は、アセンブリ言語よりも問題を高速に記述し、作業負荷が少なく、可読性が高く、デバッグ、変更、移植が容易で、コードの品質はアセンブリ言語と同等です。C 言語は一般に、アセンブリ言語コードで生成されたターゲット プログラムよりも効率が10%低いだけです 10\%10%20% 20\%20%したがって、C言語はシステムソフトウェアを書くことができます。

現段階では、プログラミングの分野ではC言語が広く使われており、高級言語とアセンブリ言語の長所を兼ね備えており、他のプログラミング言語に比べて大きな利点を持っています。コンピュータ システム設計とアプリケーション プログラミングは、C 言語の 2 つの主要な応用分野です。同時に、C 言語は強力な汎用性を備えており、多くのコンピュータ オペレーティング システムに驚くべき効率で適用できます。

C言語は長い開発の歴史を持つ完全な理論体系を持ち、プログラミング言語の中で中心的な役割を果たしています。

開発の歴史

C 言語は米国のベル研究所で生まれました。ケネス レーン トンプソンが設計した B 言語に基づいてデニス マカリスター リッチーによって開発されました。主要な設計が完了した後、トンプソンとリッチはそれを使用して UNIX を完全に書き直しました。 UNIX の開発に伴い、C 言語も継続的に改良されてきました。C言語の総合的な推進を促進するために、多くの専門家、学者、ハードウェアメーカーが共同でC言語標準委員会を結成し、1989年と1989年にC言語標準委員会が設立されました1989 年に、最初の完全な C 標準が誕生しました。これは C89 と呼ばれ、2020 年2020 年の最新の C 言語標準は2018 20182018年6月6C18は6月発売

1967 19671967 年、ケンブリッジ大学の Martin Richards は CPL 言語を簡略化し、BCPL (Basic Combined Programming Language) 言語を誕生させました。それがB言語です。

20 2020世紀60 601960 年代、米国の AT&T ベル研究所の研究者であるケネス レーン トンプソン (Kenneth Lane Thompson) は、何もすることがなく、手がかゆくなり、セーリングをシミュレーションするために自分で作ったビデオ ゲームをプレイしたいと考えていました。太陽系内——宇宙旅行。彼は上司の後ろで、使われていない小型コンピューター PDP-7 を見つけました。しかし、コンピュータにはオペレーティング システムが搭載されておらず、ゲームではオペレーティング システムの機能の一部を使用する必要があるため、彼は PDP-7 用のオペレーティング システムの開発に着手しました。その後、このオペレーティング システムは UNICS (Uniplexed Information and Computing Service) と名付けられました。

1969年 1969年1969 年、米国ベル研究所の Ken Thompson は、BCPL 言語に基づいて、非常にシンプルでハードウェアに優しい B 言語を設計し、UNICS と呼ばれる UNIX オペレーティング システムの最初のバージョンを B 言語で作成しました。

1971年 1971年1971年、同じく宇宙旅行が大好きなデニス・リッチは、ゲームを早くプレイするためにトンプソンの開発プロジェクトに参加し、共同でUNIXを開発した。彼の主な仕事は、B 言語を変換し、より成熟したものにすることです。

1972 19721972 年、米国のベル研究所のデニス リッチは、最終的に B 言語に基づいて新しい言語を設計し、2 文字目をこの言語の名前として採用しました。

1973年 1973年1973 年初めにC 言語の本体が完成しました。Thompson と Rich は、こ​​れを使用して UNIX を完全に書き直すことを待ちきれませんでした。この時、彼らはプログラミングの楽しさのあまり、宇宙旅行のことなどすっかり忘れて、UNIXやC言語の開発に専念していました。UNIX の発展に伴い、C 言語自体も絶えず改良されています。

2020年まで2020年2020 年現在、UNIX カーネルや周辺ツールのさまざまなバージョンは依然として C 言語を主な開発言語として使用しており、その多くは Thompson と Rich のコードを継承しています。

開発中に、UNIX を他のタイプのコンピュータに移植することも検討しました。C 言語の強力な移植性がここに現れています。マシン語もアセンブリ言語も移植性がなく、x86 用に開発されたプログラムは Alpha、SPARC、ARM などのマシンでは実行できません。C 言語プログラムは、そのアーキテクチャのプロセッサに対応する C 言語コンパイラとライブラリがあれば、どのアーキテクチャのプロセッサでも使用でき、C ソース コードはコンパイルされてターゲット バイナリ ファイルにリンクされます。の上。

1977年 1977年1977年、デニス・リッチーは特定のマシンシステムに依存しないC言語コンパイルテキスト「Portable C Language Compiler」を出版しました。

C 言語は1982 年も発展を続けました 19821982 年、多くの識者と米国規格協会は、C 言語の健全な発展を目的としてC 標準委員会、C 言語の標準を確立することをこの委員会は、ハードウェア ベンダー、コンパイラーおよびその他のソフトウェア ツールのメーカー、ソフトウェア設計者、コンサルタント、学者、C 言語の作者、およびアプリケーション プログラマーで構成されています。

1989年 1989年1989 年に、ANSI は最初の完全な C 言語標準である ANSI X3.159-1989 (C89 と呼ばれます) をリリースしましたが、人々はそれを「ANSI C」と呼ぶこともあります。C891990年 1990年1990 年にそのまま国際標準化機構 ISO に採用され、ISO で与えられた正式名称は ISO/IEC 9899 であるため、ISO/IEC9899:1990 は通常「C90」とも呼ばれます。1999 年に、ISO は必要な修正と改善を行った後、ISO/IEC 9899:1999 (C99 と呼ばれる) という名前の新しい C 言語標準をリリースしました。

2011年に2011年2011 年12 月 1212月8日8日8 日、ISO は ISO/IEC9899:2011 ( C11と呼ばれる) と呼ばれる新しい規格を正式にリリースしました

言語機能

主な特徴

C 言語は構造化言語であり、明確な階層があり、プログラムはモジュールの形式で作成できるため、プログラムのデバッグに非常に役立ちます。また、C 言語の処理能力とパフォーマンス能力は非常に強力で、非常に包括的な機能に依存しています。演算 シンボルや各種データ型により、さまざまなデータ構造を簡単に構築でき、ポインタ型によりメモリを直接アドレス指定したり、ハードウェアを直接操作したりできるため、システムプログラムやアプリケーションソフトウェアの開発に利用できます。C 言語の研究と分析を通じて、その主な特徴は次のように要約されます。

  1. 簡潔な言葉遣い

C 言語に含まれるさまざまな制御ステートメントはわずか9 9です。種類は9種類、32個と少ないですが、プログラムの記述要件は厳しくなく、主に小文字で書かれており、多くの不要な部分が合理化されています。実際、ステートメントの構造がハードウェアに関連することはほとんどなく、C 言語自体がハードウェアに関連した入出力、ファイル管理などの機能を提供していないため、C 言語のコンパイル システムは非常に単純です。

  1. 構造化された制御ステートメントを使用する

C 言語は構造化言語であり、提供される制御ステートメントには構造的特徴があり、これを使用して関数の論理制御を実現し、プロセス指向のプログラミングを容易にします。

  1. 豊富なデータ型

C言語には、従来の文字型、整数型、浮動小数点型、配列型などのデータ型だけでなく、他のプログラミング言語にはないデータ型も含めた幅広いデータ型が存在します。データ型は最も柔軟であり、さまざまなデータ構造に対してプログラムで計算を実行できます。

  1. リッチオペレーター

C言語には34 34が含まれています演算子は34 個あり、代入や括弧などを演算子として扱って演算するため、C プログラムの式の種類や演算子の種類が非常に豊富です。

  1. 物理アドレスの直接操作が可能

C言語はハードウェアのメモリアドレスを直接読み書きできるため、アセンブリ言語の主要な機能を実現し、ハードウェアを直接操作することができますC言語は高級言語の優れた特徴だけでなく、多くの低水準言語の利点も備えているため、システムソフトウェアプログラミングの分野で広く使用されています。

  1. コードの移植性が向上

C言語はプロセス指向のプログラミング言語であり、同じ機能をC言語で実現する場合、コードは基本的に同じであり、移植は無修正またはわずかな修正で完了するため、プログラムの作業量が大幅に軽減されます。移植。

  1. オブジェクトコードの実行効率が高く、高品質なプログラムを生成

C言語は他の高級言語に比べて高品質かつ高効率なオブジェクトコードを生成できるため、高いコード品質と実行効率が要求される組み込みシステムのプログラムを記述する場合によく使われます。

ユニークな機能

C言語は最も汎用的なコンピュータプログラム編集言語であり、高級プログラミング言語の役割を果たすだけでなく、アセンブリ言語の利点も備えているため、他のプログラミング言語と比較して独自の特徴を持っています。具体的には、次の 3 つの側面に反映されます。

  • 一つは、広範さ。C 言語の動作範囲の大きさが、その長所と短所に直接影響します。C言語には34 34が含まれています演算子の数は34 個と多くの言語を超えており、演算結果の表現形式も非常に豊富です。また、C言語には文字型やポインタ型などさまざまなデータ構造形式があり、より大きなデータ構造の演算も扱うことができます。

  • 2番目に、シンプルさ。9 99種類の制御文と32 3232 のキーワードは C 言語の基本的な機能であり、コンピュータ アプリケーション プログラミングに広く適用でき、プログラマの操作に適し、作業効率が向上するだけでなく、煩雑な言語切り替えを回避して高度なプログラミングもサポートします。 。

  • 第三に、構造が完璧です。C言語は構造化言語であり、モジュール単位でアプリケーションプログラムを実現できるため、システムの記述に大きなメリットがあると同時に、多様なプログラミング要件に適応でき、実行効率が高いという特徴があります。

欠点がある

  1. C 言語の欠点は主にデータのカプセル化が弱いことで現れ、そのため C 言語にはデータのセキュリティに大きな欠陥があり、これが C と C++ の大きな違いでもあります。

  2. C 言語の構文制限はそれほど厳しくなく、変数の型制約も厳密ではないため、プログラムのセキュリティに影響します。また、範囲外の配列添字などのチェックはありません。アプリケーションの観点から見ると、C 言語は他の高級言語に比べて習得が困難です。つまり、C言語を使用する人は、よりプログラミングの習熟度が求められます。

プログラミング開発編集

翻訳者

GCC、GNU 組織によって開発されたオープンソースの無料コンパイラー

Windows OS 上の MinGW、GCC

Clang、オープンソースの BSD ライセンスの LLVM ベースのコンパイラ

Visual C++ :: cl.exe、Microsoft VC++ に付属のコンパイラ

統合開発環境

Code::Blocks、オープンソースの無料の C/C++ IDE

CodeLite、オープンソースのクロスプラットフォーム C/C++ 統合開発環境

Dev-C++、ポータブルな C/C++ IDE

Cフリー

ライトテーブル

Visual Studioシリーズ

簡単なプログラム

「ハローワールド!」を印刷する

#include <stdio.h>
int main(){
    
    
    printf("Hello, World! \n");
    return 0;
}

A + B 問題を計算する

#include <stdio.h>
int main(){
    
    
	int a, b;
	scanf("%d%d", &a, &b); 
    printf("%d", a + b);
    return 0;
}

パリティの判定

#include <stdio.h>
int main(){
    
    
	int a;
	scanf("%d", &a);
	if(a % 2 == 0) {
    
    
		printf("是偶数");
	}
	else {
    
    
		printf("是奇数");
	}
    return 0;
}

1 + 2 + 3 + ⋯ + ( n − 1 ) + nを計算します1+2+3+\dots+(n−1)+n1+2+3++( n1 )+nの値

#include <stdio.h>
int main(){
    
    
	int n, sum;
	scanf("%d", &n);
	int i;
	for(i = 1; i <= n; i ++) {
    
    
		sum += i;
	}
	printf("%d", sum);
    return 0;
}

おすすめ

転載: blog.csdn.net/ZH_qaq/article/details/131057597