我尝试了FauxPas
源代码分析器,它向我显示我缺少-DNDEBUG
标志,下面有说明:
此参数禁用C标准库断言宏(如 在assert.h中定义。
但是,当我检查我的构建设置时,我发现描述标志-DNS_BLOCK_ASSERTIONS=1
非常相似。
所以我现在好奇。我是否真的需要FauxPas
建议的旗帜,或者我对我的旗帜感觉不错?
答案 0 :(得分:8)
NDEBUG
禁用assert()
,它是C标准库的一部分。 NS_BLOCK_ASSERTIONS
禁用NSAssert()
,这是基金会的一部分。如果代码中有两种断言,通常都需要这两种断言。