-DNDEBUG 和 -DNS_BLOCK_ASSERTIONS 标志有什么区别
What is the difference between -DNDEBUG and -DNS_BLOCK_ASSERTIONS flags
我试过 FauxPas
源代码分析器,它告诉我缺少 -DNDEBUG
标志,下一个描述:
This argument disables the C standard library assertion macro (as
defined in assert.h).
不过,当我检查我的构建设置时,我发现描述标志非常相似 -DNS_BLOCK_ASSERTIONS=1
。
所以我现在想知道。我真的需要 FauxPas
建议的标志,还是我对现有的标志没意见?
NDEBUG
禁用 assert()
,它是 C 标准库的一部分。 NS_BLOCK_ASSERTIONS
禁用 NSAssert()
,它是 Foundation 的一部分。如果您的代码中有这两种断言,您通常会同时需要这两种断言。
我试过 FauxPas
源代码分析器,它告诉我缺少 -DNDEBUG
标志,下一个描述:
This argument disables the C standard library assertion macro (as defined in assert.h).
不过,当我检查我的构建设置时,我发现描述标志非常相似 -DNS_BLOCK_ASSERTIONS=1
。
所以我现在想知道。我真的需要 FauxPas
建议的标志,还是我对现有的标志没意见?
NDEBUG
禁用 assert()
,它是 C 标准库的一部分。 NS_BLOCK_ASSERTIONS
禁用 NSAssert()
,它是 Foundation 的一部分。如果您的代码中有这两种断言,您通常会同时需要这两种断言。