A.あるいはマクロ/マクロの定義(の#define)
1.役割
プリプロセッサ、マクロ名用のプログラムが表示されたら、マクロが一定の値(文字列または数値)または式を置き換えるために使用され、これはマクロ展開と呼ばれています。
マクロ定義は、ソースマクロの定義は、マクロ展開は、プリプロセッサによって自動的に行われ完了する。
それがコンパイルされる前に、マクロ定義は、構文チェック、前処理され、1は、作業構文チェックをコンパイルされません
マクロの置換は、時間を実行している取りません
ソースファイルの各行は、プリコマンド、マルチライン利用可能スラッシュ「/」を持つことができます
前処理指令は、プログラムの任意の行に配置することができます
2.マクロ定義の利点
(1)変更するのは簡単
引数なしのマクロ定義が一定値の形で一般的には、(文字列または数値)または式を置き換えられます
(2)業務効率のプログラムを改善します
機能・コンピューティングを完了するための簡単なフォームとマクロ定義と一般的なリファレンス
3.フォーム
1. no形式人参ません
#define識別子一定値(文字列または数字)または式
//ないマクロ定義文ではなく、セミコロンで の#define M(A + B)
参照フォームで2
#defineマクロ名(パラメータリスト)が一定値(文字列または数字)または式
#define MAX(A、B)((A> B)?(A):( B))
II。条件付きコンパイル
注意:それは.cppのファイルであれば、この通路は、.Cファイルに対してのみ有効です、問題を解決するためにはexternを追加するには、グローバル変数の相互の紛争のヘッダファイルの結果を含める必要があります
//条件付きコンパイルによって、重複を避けるためには、ヘッダファイルが含ま #ifndefの__headerfileXXX__ の#define __headfileXXX__ ... ファイルの内容 ... #endifのを
三.extern "C"
それはCライブラリで書かれたC ++モジュールを呼び出すことができるようにすることです役割のにextern「C」を使用します
私たちは今、C ++のソースファイルを生成し、独自の.cppファイルを作成している。しかし、唯一の非常に古いコードは、純粋なCで書かれたので、ほとんど使用されない、一般的にモジュールインターフェースのために使用されています
四。#未定義
#define WIDTH 80 の#define ADD(X、Y)((X)+(Y)) 。 。 。 #undefのWIDTH #undefのADD
五.#pragma once
コンパイラは常に重複した定義があるかどうかを決定するために、ヘッダファイルを開く必要があるため、大規模なプロジェクトをコンパイルするときに、#IFNDEFはコンパイル時間を作るには、比較的長いので、いくつかのコンパイラは徐々に道一度に#pragmaをサポートするために始めました