[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 nguyenvanquan7826Home*/ #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
最近のコメント