関係とCとC ++との違い| CC ++言語0

1つのC言語

言語ケントンプソン発明、及びBは言語BCPL言語から導出されるので、C指定C言語は、Bは、C言語に由来する理由。

1967年、ケンブリッジ大学のCPL言語のマーティン・リチャーズは簡略化され、そうBCPL(基本的な組み合わせプログラミング言語)の言語を持ってきました。そして、彼は最初のB言語UNIXオペレーティング・システムを書きました。

1972年、ベル研究所DMRitchie Bは、新しい言語の最終的な設計上の言語に基づいて、彼はC言語である言語BCPLの名前のような第2の文字を取りました。
あなたが学習の困難に遭遇した場合場合は最後に、C ++の学習環境を探して、私たちの学習サークルC ++に参加することができ、私はそれに参加したクリックし、それが研究で発生した問題の数を減らし、多くの時間を節約します。
関係とCとC ++との違い| CC ++言語0

C言語では、唯一の32のキーワード、制御文、オペレータの34種類の9種類の非常にシンプルです。

具体的には、C言語では、データ構造及びアルゴリズムを実現するに重点を置いて、構造化言語です。第一に考慮の設計は、プロセスによって実行されるCプログラム、入力(または周囲条件)計算処理は出力(または実装(オブジェクト)の制御)を取得する方法です。

C言語では、便利な何かを行うことができますが、次のようにオペレーティング・システムとコンパイラを書くことが最も有用です。

C言語では非常に多くの場合、あなたはどのような基本的なメモリ管理を検討する必要があり、非常に効率的です。残念ながら、これらは、それを行うには多くの時間を過ごすためにあなたを必要としています。基礎となるプログラミング言語として、それは直接メモリ・ポインタ管理を添加することによって行われてもよい、C言語の多くは、perlの、Java(登録商標)、Pythonのように、設計されています。

C言語では、高レベルの言語機能と汎用プログラミング言語ですが、また、アセンブリ言語の機能を備えています。それはすでに大、中、小とマイコンに移植されている、1978、C言語、それが作業システム設計言語、書き込みシステム、アプリケーション、またはアプリケーションがコンピュータのハードウェアに依存しない記述するためのアプリケーションプログラミング言語などとして使用することができます。その強力なデータ処理機能を持つだけでなく、ソフトウェア開発における幅広い用途、だけでなく、研究の様々なタイプのシステムソフトウェアを書くのに適したC言語、など特定のアプリケーションのような3次元、2次元グラフィックスやアニメーションを、使用する必要がありますマイコンや組込みシステム開発。オペレーティング・システム・ソフトウェアとデザインを実現するためのC言語が、それはまた、ポータブル・アプリケーションの開発に広く使用されています。

1.1 C言語では、変数のスコープ(可変範囲)と再帰関数手続き型言語を有する、構造化プログラミングです。

1.2 C言語のパラメータが渡され、渡された値を有している(値渡し)と、2つの方法でポインタ(値によって渡されたポインタ)を渡します。

変数の1.3異なるタイプ一緒に構造体(構造体)と組み合わせてもよいです。

1.4のみ32予約語(予約語)、変数、関数名は、より多くの柔軟性を持っています。

可変タイプの1.5部は、例えば、整数と文字変数に、変換することができます。

1.6、C言語は、容易メモリ・ポインタ(ポインタ)の下で制御することができます。

コンパイラ1.7プリコンパイルプロセス(プリプロセッサ)C言語は、より柔軟許します。

サンプルコード:

書式#include <stdio.hに>
int型メイン(無効)
{
のprintf( "こんにちは、世界のn!");
0を返します。
}
2 C ++语言

1970年代半ば、ビャーネ・ストロヴストルップは、ケンブリッジ大学のコンピュータセンターで働いています。彼はSimulaのとALGOLを使用し、連絡C. Simulaののクラスのシステムの彼の深い感情は、ALGOLの研究の構造も、動作効率の重要性を非常によく知っています。どちらのプログラミングは、簡単で正確かつ信頼性の高いですが、また、ポータブル、効率的に実行するために、ビャーネ・ストロヴストルップは本来の意図です。まさに彼のビジョンに沿った考え方に基づいて、Simulaの背景として、C、と。1979年、ベル研究所にBjame Sgoustrupは、仕事(クラスとC)クラスCとCの改善のために働き始めました。1983年に言語が正式にC ++命名されました。

したがって、C ++は、Cの継続開発であります C ++は、強力な、大規模なアプリケーションに対応して開発することができます。その目的は、配向させることができるとCに適合するように、手順が直面するかもしれません。

手続きに基づく、オブジェクトベース、オブジェクト指向、ジェネリックパラダイム:C ++は、以下を含む4種類の上にプログラミングモデルを提供し、複雑な言語を把握することは困難で、その文法ではなく、思考だけではありません。C ++は、効率性と弾性の両方の結果であり、両方のオブジェクトは、配向プロセス指向と互換することができます。

プロセス指向の考え方:問題を解決するために必要な解析手順、機能を実現するためにこれらのステップを使用します。

オブジェクト指向の考え方:問題の業務は、個々のオブジェクトに分解され、オブジェクトではなく、完全な一歩を作成する目的ではなく、全体の問題の手順を解決するには、トランザクションの振る舞いを記述する。

なお、上記の説明から分かるように、実際には、オブジェクト指向およびプロセス指向反射は反射角という点で主に異なる、問題を解決するための二つの方法です。

C ++プログラマは一般的に「C・ガガ」として読み取られ、中国本土での単語に○をつけ、西のプログラマは、通常は「Cプラスプラス」、「CPP」と読みます。それは非常に広く使用されているコンピュータ・プログラミング言語です。C ++は、汎用プログラミング言語の複数のプログラミングパラダイムをサポートする静的なデータ型チェックです。これは、手続き型プログラミング、データの抽象化、オブジェクト指向プログラミング、ジェネリックプログラミングや他のプログラミングスタイルをサポートしています。

C ++は、その用途は、ビデオゲームやその他の娯楽ソフトウェアなどのシステムソフトウェア、アプリケーションソフトウェア、ドライバ、組み込みソフトウェア、高性能サーバおよびクライアントアプリケーションが含まれ、最も人気のあるプログラミング言語の一つです。

2.1単純(シンプル)

C ++は、構造化されたアプローチ(小さい部分に問題を打破するために)、豊富なデータ型、クラスライブラリとライブラリ関数のセットなどを提供する単純な言語です。

2.2独立したマシン又はグラフト(ポータブル)

そして、別のアセンブリ言語、C / C ++言語のプログラムは、多くのマシンで実行することができますが、ほとんど、または全く変化があるかもしれません。しかし、それはプラットフォームに依存しないではありません。

2.3中間プログラミング言語(中レベル)

C ++は、低レベルのプログラミングを行うために使用されます。このようなカーネル、ドライバなどのシステムアプリケーションの開発に使用されています。また、高レベルの言語機能をサポートしています。それは中間言語と呼ばれる理由です。

2.4構造化プログラミング言語(構造化)

C ++は、我々は小さな複数の部分に機能プログラムを使用することができ、構造化プログラミング言語です。だから、理解し、修正するのは簡単です。

2.5豊富なライブラリ(リッチライブラリ)

C ++は、一般的に使用される機能のいくつかは、開発スピードを向上させる書き込みを介して起動する必要はありませんでした、組み込み関数(ライブラリ)の数を提供します。

2.6メモリ管理(メモリ管理)

これは、動的なメモリ割り当ての特性をサポートしています。C ++言語では、いつでも自由に()関数を呼び出すことによって割り当てられたメモリを解放することができます。

2.7の実行の高速(高速)

C ++言語のコンパイルと実行時間が非常に高速です。

2.8関数ポインタ(ポインタ)

C ++は、関数ポインタを提供します。これは、ポインタを使用してメモリと直接相互作用することができます。私たちは、その上のメモリポインタ、構造体、関数、配列、を使用することができます。

2.9再帰(再帰)

C ++では、関数内の関数を呼び出すことができます。これは、各関数のコードの再利用性を提供します。

2.10拡張(拡張)

それはより簡単に新機能を採用することができますので、C ++言語は、拡張可能です。

2.11オブジェクト指向(オブジェクト指向)

C ++は、オブジェクト指向プログラミング(OOP)言語です。プロジェクトのコードサイズが大きくなると成長が、管理が容易でない場合はOOPの開発と保守理由は、プロセス指向のプログラミング言語で、より簡単になります。

2.12ベースのコンパイラ(コンパイラベース)

簡単に言えば、コンパイラは、翻訳のための「一つの言語(通常、高レベル言語)」「別の言語(通常は低レベルの言語)」プログラムです。プリプロセッサ(プリプロセッサ)→ソースコード(ソースコード)→コンパイラ(コンパイラ)オブジェクトコード(オブジェクトコード)→リンカー(リンカー)→実行可能プログラム(実行可能)→:主作業は、近代的なコンパイラを処理します。

サンプルコード:

#include <iostreamの>
int型のmain()
{
STD :: COUT <<、 "こんにちは、N-世界!";
}
3 CとCとの間の差に関連付け++

Cは、その最も重要な機能は、主な機能によって、各サブルーチンを呼び出すための機能である、プロセス指向のプログラミング言語です。実行するためには、事前に優秀なプログラマーを決めています。

C ++最初の主の主な機能に、クラスメンバ関数の概念に基づいて定義されたクラスは、実行される必要がある、プロセスは希釈され、オブジェクト指向プログラミング、プログラムの実行中に生成される主な機能のクラスは、(実際には、プロセスはまだですはい、それはクラスドライバを実行するために)その文の主な機能である、クラスがオブジェクトであるので、我々は、オブジェクト指向プログラミングと呼ばれます。オブジェクト指向分析パッケージと問題を解決するための時間、及びクラス内のデータに関連するデータの操作、クラス、オブジェクト、またはオブジェクト上のイベント駆動型の処理へのメッセージによって作成することができます。

CとC ++との最大の違いは、彼らは思考の問題は同じではありません解決することです。C言語は、主に埋め込まれ、ハードウェア駆動型開発と他の領域の分野で使用され、直接取引、C ++は、アプリケーション層を開発するために使用することができ、ユーザインターフェースの開発は、オペレーティング・システムの契約に等しいです。

C 4 C ++ "強化"

4.1型はより厳しいチェックを。

4.2オブジェクト指向の機構を追加します。

4.3一般的なプログラミング(テンプレート)のメカニズムを増加させます。

4.4は、例外処理を追加します。

4.5オペレータを増やします。

4.6標準テンプレートライブラリ(STL)が追加されます。

4.7名前空間の増加、グローバル名前空間には、競合を避けるために。

C ++は、強力な基盤となる動作特性Cを継承し、それはオブジェクト指向のメカニズムの教科書を与えられています。それは多くの特徴である、珍しいが、他のオブジェクト指向言語を継承した以上、その上の参照やconstキーワードで渡された値を渡すために魅力的な、とがありますされています。C ++は、スイスの×××のようなものですか、あなたのように人々は、人々がアヒルのようにそれを使用する方法を知っているように、何をすべきか知っていることに慣れていないことをそんなになど多くのツールを提供し、ツールボックス、などです。基礎となるデータ構造、アルゴリズム、ライブラリ、システム・ソフトウェアの開発と産業レベルのプログラミング言語として知られているような強力な武器庫を構築するための数理モデルの製造のための、それは非常に適して作るすべてのC ++の機能。

コードCのほとんどは、C ++で使用することができ、およびC ++のコードは、Cを適用することはできません (すべて、そのほとんどではないに注意してください)。

これは、5 C ++やCでの互換性はありません

これは、Cのコードのほとんどを言い、C ++はヨーヨーで実行されますが、いくつかのCコードはC ++で失敗、またはC ++で異なる動作をしますがありますすることができます。たとえば、次の暗黙的な変換。

最も一般的な違いの一つは5.1で、Cは、他のポインタ型へのvoid *からの暗黙的な変換ができますが、C ++は許可されていません。次のCコードは有効です。

//从void*类型隐式转换为int*类型
int *i=malloc(sizeof(int)*5);

しかし、CおよびC ++の両方に直面している、それを正常に動作させるためには、明示的な変換を使用する必要があります。

int *i=(int*)malloc(sizeof(int)*5);

5.2は、Cでは、グローバル変数は複数回宣言し、望ましくはないが、しかし、間違っていません。C ++では、繰り返し同じグローバル変数は、エラーが発生する可能性が宣言しました。

5.3別の共通の問題は、ポータブルであり、C ++のような新たなクラスとして、新しいキーワードを定義し、それらは、Cプログラム識別ワード(:変数名例)のように使用することができます。

C標準(C99)は非互換の一部を除去するには、C ++はまた、//コメントなどの機能、ならびにコード内の混合文の数をサポートします。C99だけでなく、新しい機能を組み込むと、いくつかのC ++衝突(例:可変長配列、文字通り一定の一次およびコンポジット複数の)。

CおよびC ++コードを混合する5.4、C ++コールにおけるすべてのCコードは、のextern "C" {/置かれなければならないCコード /}以内。関係とCとC ++との違い| CC ++言語0

CC ++言語0 |接続点と相違点CとC ++
CからC 6つの提案++

6.1マクロの注意

6.1.1 constのとの#defineマクロ置換を置き換えます

#define PAI 3.14 //慎用
const double PAI = 3.14 // 推荐

6.1.2列挙は、より関連性の要素を作ります

ERROR 0の#define
の#define SUCCESS。1
//は、以下の文言の推奨
列挙{ERROR STATE、SUCCESS}
6.1.3使用インライン関数の代わりにマクロパラメータを

最大の#define(A、B)((A)>(B)?(A):( B))
//は、以下の文言を推奨しています

INT最大インライン(int型、int型B){
> B A:?B返す;
}
また、一緒に使用6.2変数の初期化ステートメント

新しい/削除、置換のmalloc /無料を利用するために6.3

6.4以下void *型、ポインタ演算、労働組合、およびキャスト

6.5以下Cスタイルのchar *、マルチ文字列を表す文字列

-終わり-

おすすめ

転載: blog.51cto.com/14209412/2401944