一、#定義
#defineは、グローバル変数が、マクロ定義を定義していません。それは本当の意味での変数の定義ではなく、テキスト置換を行うこと。
例如:#define MAX 100
プログラムが起動されると、最初のコンパイラコードはすべてMAX 100を交換して、コンパイルします。このように利用可能な、#は、コンパイル・プロセスであることが、プリコンパイル段階ではない定義します。
二、CONST
constキーワードは定数を定義するのに使用される定数を変更constのであれば、その後、彼の値を変更することはできません。#defineと比較すると、constが次のような利点があります。
1.プリコンパイルされた指令値だけで簡単に交換型チェックを行うことができません。
図2は、不慮の変更を防ぐために、物事を保護するために変更することができます。
3.通常のコンパイラは、多くの場合、一定でないCONSTは、記憶領域を割り当てたが、コンパイル時に、それに一定になり、シンボルテーブルに格納されていることがより効率的であるように、メモリは、読み出し動作を記憶していません。
三、typedefを
typedefのアクションは、データ型、データ型の新しい名前を定義することである内部データ型(int型、char型、など)やカスタムデータ型(構造体など)が含まれます。このように、typedefが単純なマクロ置換ではなく、複数のオブジェクトのポインタ型宣言を同時に使用することができます
---------------------
著者:cuchulainn_alterの
ソース: CSDN
元:https://blog.csdn.net/cuchulainn_alter/article/details/80260876
著作権:この記事を再現ブロガー元の記事、あるは、ボーエンのリンクを添付してください!