C言語タッチ&ロール - C言語の基礎知識入門

C言語タッチ&ロール - C言語の基礎知識入門


ニウ・マー兄弟も以前は独学で C/C++ を教え、その後大学でも授業を受けていましたが、今回はもう一度正式に体系的に学び、復習したいと考えています。

1. 利点

すべての歴史は非常に重要であり、C 言語も例外ではありません。1972 年、デニス リッチとケン トンプソンがベル研究所 (そう、電話を発明した研究所です) で UNIX システムをいじっていたとき、C 言語を思いつきました。もちろん、B 言語の影もあり、B 言語はあのトンプソン兄弟によって発明されたものであるため、これに基づいて設計されています。

(1) Niu Ma は非常に多くの言語に触れてきましたが、C が最も効率的で最も疲れます。ハードウェアを研究している兄弟の多くは、プロトコルなどを書き換えると非常に面倒なことになることを理解しています。しかし、C 言語の自由度は他の言語に比べものになく、効率的かつ柔軟であることも強調しています。同時に、C 言語で生成されたコードの実行速度は、アセンブリ言語で記述されたコードの実行速度とほぼ同じです。

(2) 移植性の良さも非常に重要であり、異なるシステムにおいても同じ C 言語プログラムを基本的に変更する必要はなく、プログラムのヘッダファイルのみを変更するだけで済みます。主に、C コンパイラはほとんどのコンピュータ構造で使用できます (C 言語を機械語に翻訳するプログラムとして理解できることは後で理解されます)。

(3) 最下層で十分です C言語はアセンブリと比較することはできませんが、プログラマはC言語を使用してハードウェアのビット操作を実行でき、レジスタやメモリなどをハードウェアで処理できます。

次に、コンパイラとは何ですか

Baidu はこれを次のように説明しています。「コンパイラとは、「ある言語 (通常は高級言語)」を「別の言語 (通常は低水準言語)」に翻訳するプログラムです。

私たちが書いた C 言語プログラムをコンピューターがどのように理解できるのか、皆さんも興味があるはずです。そう、コンピュータの中に悪者が潜んでいて、その悪者がC言語のプログラムを見て、コンピュータを制御して命令を出しているのです。この小さな男は C コンパイラで、C 言語 (高水準言語) をアセンブリ言語 (低水準言語) に翻訳します。

アセンブリ言語の簡単な紹介です。これは機械語です。コンピュータは、多数の数字の文字列からなるこの言語を読んで理解できます。プログラマは、非常に難解で、非常に面倒に思えます。小さなことを行うには、多くの手順が必要です。手術。そのため、プログラマーは高級言語を使用する必要があり、理解できる言語が最適です。

C コンパイラはトランスレータとして機能します。しかし、異なる CPU の機械語は異なります。つまり、すべてのコンピュータが同じ機械語を話すわけではないため、それに一致する C コンパイラを見つける必要があります。下の図は、さまざまな人間の言語での比較です。
ここに画像の説明を挿入
主流デスクトップのような C コンパイラには、Visual C++、gcc などが含まれます。主にWindowsで使われるc言語を学習する際に誰もがvcを使ったことがあるはずです。gcc は主に、ほとんどの Unix 系オペレーティング システムで使用されます。keil5 などの組み込み開発用の C コンパイラもあります

3. C標準ライブラリ(言語標準)とは

すべてのものにはバージョンの反復プロセスがあることは誰もが知っていますが、C 言語には過去何年にもわたって多くのバージョンと標準が存在してきたため、ゆっくりと整理してみましょう。

1978 年に、ブライアン カーニハンとデニス リッチーは、「The C Programming Language」という本を執筆しました。この本は、K&R C としても知られる C 標準の初版として認識されています。当時の K&R C 言語は現在の C 言語とは大きく異なるため、興味があればさらに詳しく学ぶことができます。しかし、当時はC言語のみが定義されており、Cの標準ライブラリは定義されていませんでした。

C 言語は使いやすいと感じた後、後の世代では、より完全な標準セットが必要であることがわかりました。そのため、1983 年から米国の ANSI は ANSI C と呼ばれる一連の標準を開発し、1989 年に発行され、C 言語と C 標準ライブラリを定義しました。その後、一部の人々は、そんなことは不可能だ、ラオ・メイが兄であるはずはなく、C 言語はみんなのものだと考えました。したがって、国際標準化機構 (ISO) は、実際には ANSI C と同じものである ISO C を開発し、両者は互いに学び合います。したがって、ANSI C および ISO C は通常 C89 または C90 と呼ばれ、名前は C に年を加えたものです。

C 言語標準化委員会は 1999 年に C 言語の改良を続けて C99 を発表し、2011 年には C11 を発表しました。

C11標準ドキュメントが必要な場合: https://www.aliyundrive.com/s/tfjPAgpvSXC 抽出コード: 99en

したがって、C 標準ライブラリは C 標準の特定の実装であり、開発者が統一された関数とデータ構造を使用できるようにし、開発者が指定された範囲内で「動作」できるようにします。たとえば、printf() を使用して印刷することしかできません。これは実際には、「最も基本的な API インターフェイスをプログラマーに提供する」と同じであり、他の言語を学習すると、これらのことに徐々に気づくようになります。初心者は、この側面について深入りしないでください。C プログラムでは次のようにこれらの標準ライブラリを参照できます。

#include <stdio.h>  //我们使用#include来引用头文件,<stdio.h>这个头文件就是包含在标准库中的

もちろん、標準ライブラリ内のヘッダー ファイルが異なれば、異なる基本機能を提供できます。一般的に使用されるヘッダー ファイルの一部を次の表に示します。

ヘッドファイル 関数
stdio.h 入出力機能
stdlib.h 多くのさまざまな機能
string.h 文字列関数
math.h 数学関数
時間.h 時刻日付関数

次回は、初心者が理解できない知識点を紹介しますので、コメントや修正をお待ちしております。

おすすめ

転載: blog.csdn.net/weixin_58512942/article/details/126426725