[C / C++] 唯一の前処理 – プリプロセッサディレクティブ

この記事を開く, 私はあなたの写真を紹介し、あなたは約過ごす 1 以下のプログラムを読み込むための分, 違いを認識するために慎重に検討する…

わたしは、あなたを愛しています

コンテンツ
1. #定義する
2. オペレータ # と ##

今、あなたは差がないと実現 ??? 最初は、この写真は、人々が唯一、その内容に注意を払う取り出したとき (愛の何かについて何@@) またはキャッチは彼のテオがから書かれていたのではなく、 “この” スペルミス (になる権利 “YEU”) =)). 私たちはあなたを好きではなかったことを望む, それは大丈夫だ場合に​​は, 実際に違いを認識することが重要である (ない、上記のいずれかの)? 実現した場合、それは非常に良いです, それが認識されていない場合でも、ご注意ください, … 主な機能のないプログラム.

最初に私はの#defineについてお話します

単純なソートは、その定数を定義するために使用される. たとえば、次のことができます:

#define x 100;
#define s "nguyenvanquan7826"

プログラムが実行されると, このラインは、プログラム全体で最初に処理され、その値は定義されている値に置き換えられます、変更することはできません. この例では、xは、の値である 100, S値は文字列です。 “nguyenvanquan7826”.

また、特定の関数を定義するために使用することができ. 例えば間の最大値を見つける定義 2 数.

#define getmax(a,b) a>b?a:b

プログラムの実行を観察する, それは完全に遵守.

/*
C/C++ program - code by nguyenvanquan7826
Home
*/ #include <iostream> #define getmax(a,b) a>b?a:b using namespace std; int main() { int m = getmax(5, 7); cout << m << endl; return 0; }


オペレータ # と演算子 ##

数学のテスト # 機能を置き換えるために使用されるとき、関数列内のパラメータによって定義される.

#define str(x) #x
cout << str(nguyenvanquan7826);

コマンドに相当

cout << "nguyenvanquan7826";

オペレータ ## 接続されます 2 それらの間のギャップを離れることなく、引数.

define glue(a,b) a ## b
glue(c,out) << "nguyenvanquan7826";

コマンドに相当

cout << "nguyenvanquan7826";

今、あなたは、オフライン初期段階のプログラムを説明しよう.

リファレンスの記事で: cplusplus.com