C++(四)define可変パラメータマクロ
992 ワード
今日は見たことのないコードを見ました.
解読:
このマクロ
しかし、これは可変パラメータマクロであり、C 99コンパイラが新たに追加した特性である.
whatはパラメータで、コンパイラはOFFSET(what)に出会うたびにprintf()で置き換えられ、printfのwhatは二重引用符で「what」になります.
#号の使い方:
入力されたパラメータは、文字列になり、二重引用符を付けます.
つまり、
例を挙げます.
まとめ:
(一)可変パラメータマクロを利用し、プログラミングを容易にする
(二)読みやすいプログラム
#define OFFSET(what) \
printf(#what" %d
",int(&ptr->what));
解読:
このマクロ
#define OFFSET(what) printf(#what" %d
",int(&ptr->what));
一般的なマクロフォーマットと同様に、#define xxooのフォーマットです.しかし、これは可変パラメータマクロであり、C 99コンパイラが新たに追加した特性である.
whatはパラメータで、コンパイラはOFFSET(what)に出会うたびにprintf()で置き換えられ、printfのwhatは二重引用符で「what」になります.
#号の使い方:
入力されたパラメータは、文字列になり、二重引用符を付けます.
つまり、
printf("what"" %d
",int(&ptr->what));
C++は複数の文字列を1つの文字列に連結することをサポートするため printf("what %d
",int(&ptr->what));
例を挙げます.
#include
#include "stdio.h"
using namespace std;
#define Say_Love_You(what)\
printf(#what" I love you
");
int main()
{
Say_Love_You(qiqi);
return 0;
}
まとめ:
(一)可変パラメータマクロを利用し、プログラミングを容易にする
(二)読みやすいプログラム