query 3
它在Visual Studio中正常工作,因为#ifdef _DEBUG
a = "ram";
#else
a = "sam";
#endif
在预处理器中定义,而它在Linux中不起作用,即使我在编译时给出了“-g”选项。对此有什么选择?我想为两个平台提供相同的代码。
答案 0 :(得分:0)
标准宏为_DEBUG
,但它与N
具有相反的意义(#ifndef NDEBUG
a = "ram";
#else
a = "sam";
#endif
用于"不是")。所以你可以像这样编写你的代码:
#ifndef
请注意我是如何使用#ifdef NDEBUG
a = "sam";
#else
a = "ram";
#endif
来否定条件的。当然你可以把它写成:
_DEBUG
如果您不喜欢这样,您还可以通过以下方式编译来定义Linux上的g++ -g -D_DEBUG ...
:
class timed
{
int id;
int minute;
int time;
}`