gpt4 book ai didi

c++ - #define NDEBUG 似乎不起作用

转载 作者:太空狗 更新时间:2023-10-29 20:11:35 35 4
gpt4 key购买 nike

我在一篇文章中读到,放置以下预处理器行会忽略所有后续的断言预处理器指令。但这似乎不起作用,实际上 assert 语句由预处理器处理,并在不满足 assert 中的条件时中止程序(我知道当不满足 assert 条件时中止是正确的行为)。我的问题是为什么放置#define NDEBUG 不会忽略断言语句。代码是

#include<stdio.h>
#include<assert.h>
#define NDEBUG

int main(){
int x = 0;

assert (x!=0);

}

最佳答案

改变出现的顺序,然后它应该工作:

#define NDEBUG
#include <assert.h>

NDEBUG用于定义 assert()<assert.h>有条件地。

关于c++ - #define NDEBUG 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32476753/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com