【发布时间】:2013-12-01 09:21:34
【问题描述】:
我在我的代码中多次使用了一种调试语句 - 比如DEBUG("abcd"); 或DEBUG("abc %d def", val),它们会被翻译并打印到文件中。
现在,但是我想将它们全部转换为不同类型的日志记录,这需要使用带有声明的函数 -
WRITE(char *string);
用法:WRITE(L"abcd") 等。
因为这个调试语句的使用量很大,我希望使用宏来转换它。可以这样做吗?还考虑到DEBUG 函数过去也接受格式说明符?
【问题讨论】:
-
这个问题有点令人困惑。你能举个例子说明你想要达到的目标吗?
-
好的,我需要将我的 Debug() 语句转换为 Write() 语句。因为Debug语句的使用量很大;我希望使用宏一次性转换所有内容。 Debug() 将字符串作为输入,也带有格式说明符。我希望能够将其转换为单个字符串以供 Write() 使用。还有一个 unicode/ansi 的东西,我需要在我的 Write 函数中使用 L"" 。尝试类似的东西 - #define DEBUG(string) WRITE(L"string") 不适用于具有格式说明符的那些。
-
在代码级别转换?
-
你的意思是转换每一个语句?有成千上万。如果你的意思是别的,你能举个例子吗?
-
为什么不能更改DEBUG宏?
标签: c macros format-specifiers