C ++牛質問day45&46をはねのけます

長所静的リンクライブラリ 

 (1)コードは、ダイナミックリンクライブラリよりもわずかに速い速い実行速度をロードされます。 

 (2)のみお使いのコンピュータの開発、.LIBファイルは、DLL地獄のような問題を回避するために、ユーザーのコンピュータと、問題のバージョンに存在するかどうかを考慮せずにバイナリ形式で出版社の正しい.LIBファイルを確実にするために。 

2ダイナミックリンクライブラリアドバンテージ 

 (1)より多くのメモリを保存し、ページ・スワッピングを減らします。

 (2)EXEファイルの独立とDLLファイルを、限り、出力インタフェースとして(すなわち名前、パラメータ、戻り値の型と変わらない呼び出し規約)変わらない、DLLファイルはEXEファイルへの影響はありません置き換える、大幅に改善されたメンテナンス性そして、スケーラビリティ;

 (3)プログラムは、同じDLL関数を呼び出すことができ呼び出し規約の関数限り、異なるプログラミング言語で書かれました。

 (4)大規模なソフトウェア開発のために、独立した開発プロセスを開発し、異なる開発者や開発組織のテストを容易にするために、カップリングの小さい程度を作ります。

欠点3

 (1)拡大実行を生成静的リンクを使用して、廃棄物が得られ、同じ共通のコードを含みます。

 ダイナミックリンクライブラリアプリケーションの使用は自己完結型ではありません(2)、それはDLLのモジュールに依存して存在している必要があり、ダイナミックリンクでは、プログラムはDLLが存在しない起動時にロードを使用している場合、システムはエラーメッセージを表示してプログラムを終了することがわかりました。ダイナミックリンクは、システムが実行時の使用を停止しませんが、DLLのエクスポート機能が利用できないため、プログラムがロードに失敗します。静的にリンクされたよりも遅いです。ソフトウェアモジュールを実行するために必要なように、新しいモジュールは、古いモジュールと互換性がない場合、モジュールは、更新された場合、すべての引き裂かれました。これは、初期のWindowsの中では非常に一般的です。

4.free解放されたメモリを直接戻るオペレーティングシステムに限らない、あなたは、リリース前にプロセスを終了することをお勧めします。
malloc関数までは直接、それは仮想メモリのアプリケーションであり、物理メモリのために適用することはできません。仮想メモリが必要に仮想メモリのデータのこの部分を使用するためのレッスン、メモリの使用量として動作するハードディスクの空き容量の制服の一部である仮想メモリの知識のオペレーティングシステムであり、それはその実際の物理メモリに転送されます。

5。

唯一のメンバ関数オーバーロードされた演算子があります:=は、()、[]、 - >、新、削除します。

 6。

アサートされている意味を主張し、それは、標準C ++ヘッダファイルのマクロをcassert定義され、条件式トゥーレが真でない場合、プログラムは終了し、それが簡単であるので、エラーを報告するかどうかを判断するために使用される値位置決め誤差 
デバッグモードとリリースモード:私たちは通常、2つのモードがあり、プログラムを開発してきました
1.分析し、デバッグモードでは、コンパイラはデバッグ情報の多くを記録したときに解決し、あなたも私たちは、プログラマのテストを支援するために、そのようなアサーションが主張する追加など、テストコードの多くを追加、バグの出現することができます
2.リリースモードでは、デバッグ情報は、上記のものには存在しない、とコンパイラが生成されるアプリケーションのパフォーマンスが最適になるように自動的にいくつかのコードを最適化しますが、何かがうまくいかない場合は、テストの分析を容易にしていません

 7。

ここでは揮発性の修正変数の場合に使用されるいくつかのキーワードは以下のとおりです。
  1. デバイスのハードウェア・レジスタ(例:ステータスレジスタ)
  2. 非自動変数への割り込みサービスルーチンのアクセス(非自動変数)
  3. マルチスレッド・アプリケーション変数は、いくつかのタスクによって共有されています

おすすめ

転載: www.cnblogs.com/Tonarinototoro/p/11701288.html