KdPrint(("Enter HelloWDMAddDevice\n"));
Run Code Online (Sandbox Code Playgroud)
这样做的原因是什么?
这样你就可以将整个参数列表传递给宏,并将它传递给一个带有可变数量参数的函数.
我敢打赌那个宏的定义是:
#if DEBUG /* or something like it */
#define KdPrint(args) (printf args)
#else
#define KdPrint(args) /* empty */
#endif
Run Code Online (Sandbox Code Playgroud)
或者类似于其他一些像printf一样工作的函数.
如果它被定义为printf(args),那么你只能传递单个字符串参数,因为宏的参数不能包含不在嵌套括号内的逗号.