があるので、書きのマクロ変数の引数リストにサンプルシミュレーション?
-
09-06-2019 - |
質問
私が知る限りでは、gccが書けるようなもの:
#define DBGPRINT(fmt...) printf(fmt);
があるのではなVC++?
解決
他のヒント
あり、これを実行する事ができます。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マクロなどによってコンパイラでコンパイル.