gpt4 book ai didi

c++ - Linux 上 _DEBUG 的替代方案

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:33 24 4
gpt4 key购买 nike

#ifdef _DEBUG
a = "ram";
#else
a = "sam";
#endif

它在 Visual Studio 中工作正常,因为 _DEBUG 是在预处理器中定义的,而它在 Linux 中不起作用,即使我在编译时给出了“-g”选项。有什么替代方案吗?我想要两个平台都使用相同的代码。

最佳答案

此操作的标准宏是 NDEBUG,尽管它具有与 _DEBUG 相反的含义(N 表示“not”)。所以你可以像这样编写可移植的代码:

#ifndef NDEBUG
a = "ram";
#else
a = "sam";
#endif

请注意我如何使用#ifndef 来否定条件。当然你也可以将其写为:

#ifdef NDEBUG
a = "sam";
#else
a = "ram";
#endif

如果您不喜欢这样,您还可以在 Linux 上通过如下编译来定义 _DEBUG:

g++ -g -D_DEBUG ...

关于c++ - Linux 上 _DEBUG 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32709283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com