タグ

C++とマクロに関するrti7743のブックマーク (2)

  • #と##演算子

    文字列化演算子 マクロ関数だけで使用できる、便利な演算子が用意されています そのひとつが文字列化演算子です マクロ関数で受け取った値に対して#記号をつけることで それを文字列、すなわちダブルクォーテーションをつけた状態に置換えます (プリプロセッサディレクティブであることを忘れないでください。あくまでソース上で置き換わるだけです) #define STRING(str) #str このマクロ関数は、仮引数の値をダブルクォーテーションをつけた状態に置き換えます 次のプログラムを実行してください #include <stdio.h> #define PRINT(str) printf(#str "\n") #define STRING(str) #str int main() { PRINT(Kitty on your lap); printf("%sバイトは1キロバイト" , STRING(

  • マクロで可変長引数を使う方法

    コメントを追加 # re: マクロで可変長引数を使う方法 2006/12/10 19:17 crimsonwoods C99からは可変長引数を取る関数型マクロを 書くことが出来ます。 VS2005では対応済みで、 #include <stdio.h> #include <tchar.h> #define VAARG_FUNC( format, ... ) printf( format, __VA_ARGS__ ); int _tmain( int argc, _TCHAR** argv ) { VAARG_FUNC( "%s %d %f\n", "hoge", 10, 0.31 ); return 0; } みたいなことが出来るようになっています。 # re: マクロで可変長引数を使う方法 2006/12/10 23:41 RAPT おっと、そういえば、C99 は可変長引数を取るマクロが追

    rti7743
    rti7743 2009/09/13
    C99がほすぃ
  • 1