gpt4 book ai didi

c - gcc - 属性 nothrow 的用途是什么?

转载 作者:太空狗 更新时间:2023-10-29 15:04:01 31 4
gpt4 key购买 nike

我正在查看一些 gcc 属性列表,我发现了这个引起了我的注意:

nothrow
The nothrow attribute is used to inform the compiler that a function cannot
throw an exception. For example, most functions in the standard C library can be
guaranteed not to throw an exception with the notable exceptions of qsort and
bsearch that take function pointer arguments. The nothrow attribute is not
implemented in GCC versions earlier than 3.3.

C 函数怎么会抛出异常?有人可以解释一下这个属性的用途吗?

似乎有可用的 nothrow 标记,但我在那里发现的内容似乎与 C++ std::nothrow 相关。不确定这是否与我的特定问题有关。

最佳答案

这在从 C++ 代码调用 C 代码时具有重要意义,它向编译器保证 C 代码不会抛出异常以进行优化。如果它是 C 代码并且不能抛出,或者因为它是专门为永远不会抛出异常而编写的 C++,这将很有用。

所以最终,如果您正在编写纯 C,您永远不需要它,但是如果您认为有人可能会从 C++ 调用您的代码作为一个库,它会很方便。

关于c - gcc - 属性 nothrow 的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24882645/

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