我可以成功地将 DEBUG 用作 C 中的常量符号吗?

标签 c debugging

在我的类作业中,我已经成功地做到了这一点,但只是在非常简单的程序中。今天,我有一个更复杂的程序,在我将 DEBUG 定义为一个符号后,Eclipse 做了可怕的笨拙的事情,并且在我删除定义后这些可怕的事情并没有消失。另一个消息来源告诉我,gcc 编译器使用了符号 DEBUG,我自己定义它会干扰标准库。

自己用#define DEBUG可以吗?还是不行?

最佳答案

是的,定义符号DEBUG是完全可以的你自己。但是定义符号 _DEBUG可以的(注意前导下划线):以下划线和大写字母或两个下划线开头的符号保留供实现(即编译器和工具链)使用。由于它们是保留的,您不应该自己定义它们,但您当然可以测试它们的存在。请参阅 C99 标准的 §7.1.3。

另一个需要注意的符号是NDEBUG ,您可以自由定义或不定义,但如果您在包含 <assert.h> 之前定义它, 它导致所有 assert要删除的语句。

关于我可以成功地将 DEBUG 用作 C 中的常量符号吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5100693/

相关文章:

debugging - 上移一帧,调试R环境

java - 不幸的是 MyApp 已停止。我该如何解决这个问题?

c# - WinRT后台网络调试

java - Pollard rho 整数分解

c - pthread、指针和更多 C 语言中令人头疼的问题

c - 六边形的表面积

c++ - 在Windows上进行_CONTEXT结构调试:如何?

ubuntu - 如何在基于 Ubuntu 的 linux 上使用 erlangs GUI 调试器调试 Elixir?

c++ - 代码块中的内部错误

c++ - 数组索引与 "user documentation"术语?