在我的类作业中,我已经成功地做到了这一点,但只是在非常简单的程序中。今天,我有一个更复杂的程序,在我将 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/