在我的班级工作中,我已经成功完成了这项工作,但仅限于非常简单的程序.今天,我有一个更复杂的程序,和Eclipse做了可怕的事情borky我定义DEBUG为标志后,这些可怕的事情并没有消失之后,我删除了定义.另一个消息来源告诉我,gcc编译器使用了符号DEBUG,并且我自己定义了标准库.
可以自己使用#define DEBUG吗?或不?
是的,完全可以DEBUG自己定义符号.但是定义符号是不行的_DEBUG(注意前导下划线):以下划线和大写字母开头的符号或两个下划线保留供实现使用(即编译器和工具链).由于它们是保留的,你不应该自己定义它们,但你当然可以测试它们的存在.参见C99标准的第7.1.3节.
要注意的另一个符号是NDEBUG,您可以自由定义或不定义,但如果您在包含之前定义它<assert.h>,则会导致assert删除所有语句.