gcc - 属性 nothrow 有何用途?

2023-12-20

我查看了一些 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++ 中调用您的代码作为库,那么它会很方便。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gcc - 属性 nothrow 有何用途? 的相关文章

  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 重载<<的返回值

    include
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • 将 OpenCV 矩阵循环转换为 JavaCV

    不久前得到了 O Reilly 的 学习 OpenCV 一书 从那时起 我一直忙于将我看到的所有示例代码从 OpenCV 转换为 JavaCV 通常还会进行一些我自己的修改 一直以来 我都试图尽可能保持纯 OpenCV C 语言 代码并避免
  • 有没有安全的方法来管理 API 密钥?

    我正在使用一个API https www themoviedb org在我的应用程序中 我目前通过 java 界面管理 API 密钥 public interface APIContract The API KEY MUST NOT BE
  • 函数的 va_arg 参数存储在堆栈内存还是堆内存中?

    问题如题 变量参数列表是根据其使用情况存储在堆栈内存中 还是分配到堆中 更重要的是它们存储在哪里 为什么它们存储在 X 中 该标准没有提及实现 只提及 va arg 和相关 宏 的行为 它们甚至不必是宏 根据编译器的 正常 约定 变量参数可
  • Jenkins 在 Websphere 8.5 上运行导致插件类加载错误

    我正在运行 Jenkins 1 552 WebSphere 8 5 with Java 7 on RedHat Linux 我将 Artifactory 插件加载到 Jenkins 中 但是当我进行测试连接时 收到以下错误 org apac
  • MediaPlayer 无法准备?

    我编写了一个流媒体广播应用程序 其功能相当基本 但有些设备拒绝 准备 例如运行 2 2 的我的 Optimus One 我的应用程序在其他 2 2 设备上运行 我兄弟的 S2 运行 2 3 我的 Prime 运行 4 0 3 知道为什么我的
  • 如何抑制 Jasmine 中跳过的测试的输出

    如果我的场景包含 1000 多个测试 并且只想运行其中的选定部分 我可以使用fdescribe 其余的测试被跳过 这很好 但它们仍然污染控制台输出 如何抑制跳过测试的控制台输出 如果您通过 Karma 运行测试 则可以配置一个规范报告器插件
  • 如何在 pandas 中使用滚动?

    我正在研究下面的代码 Resample interpolate and inspect ozone data here data data resample D interpolate data info Create the rollin
  • Wix 如何隐藏功能选项(无子功能)

    有一个类似的问题 在自定义对话框中编辑上下文菜单 选择树 https stackoverflow com questions 12929930 edit context menu selectiontree in customize dia
  • 创建 NSString 后保留计数

    我正在通过以下方法创建一个 NSString 类型的对象 NSString str NSString alloc initWithString aaaaaaaaaaaaaaa NSLog retain count d str retainC
  • Rails 4+ 最佳实践:删除父级,同时保留子级

    我想保留子记录和层次结构 即使父记录被删除 我看到两个选择 保留现有的父级并利用 deleted at 字段来指示 父母本身不活跃 但关系仍然存在 这将导致许多实际上已失效的父记录被永久存储 嗯 将所有废弃的子记录分配给通用 收集器 僵尸父
  • Celery / RabbitMQ - 找出 No Acks - 未确认的消息

    我正在尝试找出如何获取有关未确认消息的信息 这些存储在哪里 在使用 celery 检查时 似乎一旦消息得到确认 它就会处理完毕 并且您可以跟踪状态 假设您有一个结果后端 那么您可以看到它的结果 但从你应用延迟的那一刻起 直到它被承认它处于黑
  • 匿名方法作为函数结果

    我想要做的是将作为函数结果获得的匿名方法分配给相同类型的变量 Delphi 抱怨无法完成任务 显然 Delphi 的事情我想分配 GetListener 函数而不是同一函数的结果 非常感谢对此的任何帮助 type TPropertyChan
  • 如何仅对筛选数据/可见单元格应用 vlookup 公式

    我已经过滤了 A 列 我需要对 A 列中的可见单元格应用 vlookup 公式 我如何在 vba 中实现这一目标 工作表中的总行数为 30 000 过滤后的行数接近 100 您无需 VBA 只需使用 Excel 数组公式即可解决此问题 但如
  • 用 R 进行向量思考

    我知道 R 处理向量的效率最高 应该避免循环 我很难自学以这种方式实际编写代码 我想要一些关于如何 矢量化 我的代码的想法 下面是为 10 000 个非唯一状态组合创建 10 年样本数据的示例 st 计划1 p1 和计划2 p2 st lt
  • 动画边距底部 Silverlight

    我目前正在处理动画 我有一个隐藏搜索面板的网格 单击搜索按钮会将网格向下移动以显示搜索选项 我让这部分工作的问题是网格视图占用了所有可用空间 因此当搜索栏隐藏时它看起来很好 但如果搜索栏可见 那么网格底部就会离开页面 我一直在尝试使用边距来
  • 403 禁止网络根目录中的符号链接

    我位于 LAMP 堆栈上的共享托管包上 没有 shell 访问权限 我可以使用 PHP 创建符号链接symlink 功能 假设我的网络根目录是 home www user1 public 假设我有一个名为的真实目录 home www use
  • 使用 CircleCI 进行 Selen 测试

    我正在使用 CircleCI 我想运行 Huxley 测试 但为此我需要运行硒服务器 我试图运行 selenium 服务器独立 jar 那不是解决方案 如果您知道的话请帮忙 大多数浏览器测试框架都会为您提供 Selenium 如果您需要运行
  • CSS 浮点逻辑

    我创建了 25 个随机宽度和高度的盒子 其中width height 如图所示 document ready function e for var count 0 count lt 5 count for var iter 0 iter l
  • 数据库设计:1 个表还是 2 个表?

    我见过一些数据库设计 其中帐户表中包含所有用户信息 包括密码 电子邮件 出生日期 名字 姓氏等 我见过其他一些有两张桌子的 用户名 或电子邮件 密码 状态 激活等 组 管理员 所有者 用户等 and 名字 姓氏 出生日期 出生月份 出生年份
  • gcc - 属性 nothrow 有何用途?

    我查看了一些 gcc 属性列表 发现了这个引起了我的注意 nothrow The nothrow attribute is used to inform the compiler that a function cannot throw a