gpt4 book ai didi

c - 在 C 中实现 try/catch 的有效方法

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:08 26 4
gpt4 key购买 nike

我想在 C 中做类似下面的事情:

doSomthing(test_arg1); // first time
check_if_everything_good();

doSomething(test_arg2); // second time
check_if_everything_good();

doSomething(test_arg3); // third time
check_if_everything_good();

我的想法是,在我调用 doSomething() 之后,我想通过调用 check_if_everything_good() 来确保函数调用没有破坏任何其他东西。如果 doSomething() 损坏了某些东西, check_if_everything_good() 在第二次 doSomething() 调用之前返回。

然而,我想避免每次在 doSomething() 之后调用 check_if_everything_good() {check_if_everything_good 很昂贵}。有没有一种方法可以在 C 中有效地实现这一点?有些东西可能像 Java 中的 try/catch

最佳答案

假设 check_if_everything_good 仅在开发环境中用于调试/诊断目的,那么您可以这样做:

#ifndef NDEBUG
#define check_if_everything_good() do_check_if_everything_good()
#else
#define check_if_everything_good()
#endif

NDEBUG 是一个定义,通常由编译器在“发布”(或“非调试”)构建中定义,因此我们在这里使用它来“仅在实际有意义时执行此操作” .

关于c - 在 C 中实现 try/catch 的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17559770/

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