があるので、書きのマクロ変数の引数リストにサンプルシミュレーション?

StackOverflow https://stackoverflow.com/questions/65037

質問

私が知る限りでは、gccが書けるようなもの:

#define DBGPRINT(fmt...) printf(fmt);

があるのではなVC++?

役に立ちましたか?

解決

限りありでVC++2005年.構文の用例することはできない。

#define DBGPRINT(fmt, ...) printf(fmt, __VA_ARGS__)

フル参照 こちらの.

他のヒント

あり、これを実行する事ができます。Visual Studio C++ンバージョンについては2005年以降からないのでVS2003).見 VA_ARGS.だようこ:

#define DBGPRINTF(fmt, ...)  printf(fmt, __VA_ARGS__)

変数の引数にマクロですぐに渡される機能を提供して'...'(<%=args%>等:argsは、その後米va_argsを解析しています。

が可変な挙動を VA_ARGS のマクロです。ので VA_ARGS 変数とすることができ0論争することができます。うき続きご期待いただきたく、何卒末尾にカンマがない。

ご利用しない非標準の拡張までにスチューデント-ブックブラケット:

#define DBGPRINT(args) printf(args);
DBGPRINT(("%s\n", "Hello World"));

何をいっていると言っても過言ではありと呼ばれていvariadicマクロ](http://msdn.microsoft.com/en-us/library/ms177415(VS.80).aspx).

の概要にリンク:あり、VC++2005年。

かない場合には実際に必要な、特徴のマクロな__FILE__, __LINE__,トークンを貼り付けなど) している場合を書variadic機能を利用 stdargs.h.の代わりに呼び出し printf(), は、variadic機能で vprintf() のためのパスに沿っての変数引数のリストが表示されます。

のためのMSVC7.1(.純2003年)、この作品:

#if defined(DETAILED_DEBUG)
#define DBGPRINT fprintf
#else
__forceinline void __DBGPRINT(...){}
#define DBGPRINT __DBGPRINT
#endif

以下のすべます。参照リンク Variadicマクロ)

(例示し、固定および変数の引数になります。)

#  define DBGPRINTF(fmt,...) \
    do { \
        printf(fmt, __VA_ARGS__); \
    } while(0)

検索のための"VA_ARGS"とva_listにMSDN!

どまった。でuglierるかもしれませんが(ときいていないのかもしれませんしたい、末尾のセミコロンでのマクロ自体は:

#define DBGPRINT(DBGPRINT_ARGS) printf DBGPRINT_ARGS // note: do not use '(' & ')'

使用す:

DBGPRINT(("%s\n", "Hello World"));

(た一対のパー).

なぜすべてのネガ、レントゲン写真の問題なかった状態にバージョンのVC++、variadicマクロなどによってコンパイラでコンパイル.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top