sách gpt4 ăn đã đi

Có thành ngữ nào tốt để xử lý lỗi trong chương trình C trực tiếp không?

In lại 作者:太空狗 更新时间:2023-10-29 16:22:56 28 4
mua khóa gpt4 giày nike

回到一些 C 语言工作。

我的许多函数看起来像这样:

int err = do_something(arg1, arg2, arg3, &result);

根据意图,结果由函数填充,返回值是调用的状态。

阴暗面是你会得到像这样天真的东西:

int err = func1(...);
if (!err) {
err = func2(...);
if (!err) {
err = func3(...);
}
}
return err;

我想我可以对它进行宏设置:

#define ERR(x) if (!err) { err = (x) }
int err = 0;
ERR(func1(...));
ERR(func2(...));
ERR(func3(...));
return err;

但这只有在我链接函数调用而不是做其他工作时才有效。

显然,Java、C#、C++ 有异常,非常适合这类事情。

我只是好奇现在其他人在他们的 C 程序中做了什么以及其他人如何处理错误。

câu trả lời hay nhất

如果您有需要在最后释放的资源,那么有时旧的可信赖的 đi đến 可以派上用场!

số nguyên
major_func(size_t len)
{
int err;
char *buf;

buf = malloc(len);

if (err = minor_func1(buf))
goto major_func_end;
if (err = minor_func2(buf))
goto major_func_end;
if (err = minor_func3(buf))
goto major_func_end;

major_func_end:
free(buf);
return err;
}

关于c - 直接 C 程序中的错误处理有什么好的习惯用法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2789987/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress