C11可选功能宏在哪里?

2023-12-14

C11 标准中写道,编译器应该提供一些宏来测试可选功能的存在。我可以在哪些标题中找到它们?

例如位于哪里__STDC_NO_VLA__?

对于 GCC,即,如果我尝试找到__STDC_NO_COMPLEX__ into complex.h我在那里没找到...


它们没有在任何标头中定义,编译器将自行定义它们。

您可以转储所有预处理器定义。例如对于 gcc 写:

gcc -dM -E - < /dev/null

以我为例:

bob@bob-fedora:~/trunk/software$ gcc --version
gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

bob@bob-fedora:~/trunk/software$ gcc -std=gnu11 -dM -E - < /dev/null | grep STDC
#define __STDC_HOSTED__ 1
#define __STDC_UTF_16__ 1
#define __STDC_VERSION__ 201112L
#define __GNUC_STDC_INLINE__ 1
#define __STDC_UTF_32__ 1
#define __STDC__ 1

在你给出的例子中,__STDC_NO_VLA__它的存在意味着编译器不支持可变长度数组。你可以写:

#ifdef __STDC_NO_VLA__
#error Your compiler does not support VLAs! Please use a supported compiler.
#endif

Or

#ifndef __STDC_NO_VLA__
// code using variable length arrays
#else
// fallback code for when they are not supported
#endif
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C11可选功能宏在哪里? 的相关文章

  • 进程何时获得 SIGABRT(信号 6)?

    C 中进程获得 SIGABRT 的场景有哪些 该信号是否始终来自进程内部 或者该信号可以从一个进程发送到另一个进程吗 有没有办法识别哪个进程正在发送该信号 abort 向调用进程发送SIGABRT信号 就是这样abort 基本上有效 abo
  • 为什么我不能用 `= delete;` 声明纯虚函数?

    Intro 纯虚函数使用通用语法声明 virtual f 0 然而 自 c 11 以来 有一种方法可以显式地传达non existence 特殊 成员函数的 Mystruct delete eg default constructor Q
  • 为什么要序列化对象需要 Serialized 属性

    根据我的理解 SerializedAttribute 不提供编译时检查 因为它都是在运行时完成的 如果是这样 那么为什么需要将类标记为可序列化呢 难道序列化器不能尝试序列化一个对象然后失败吗 这不就是它现在所做的吗 当某些东西被标记时 它会
  • 显示异常时的自定义错误消息:从客户端检测到潜在危险的 Request.Form 值

    我在我的 Web 应用程序中使用 ASP NET 的登录控件 当发生此异常时 我想在标签上显示一种有趣的错误类型System Web HttpRequestValidationException A potentially dangerou
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • 暂停下载线程

    我正在用 C 编写一个非常简单的批量下载程序 该程序读取要下载的 URL 的 txt 文件 我已经设置了一个全局线程和委托来更新 GUI 按下 开始 按钮即可创建并启动该线程 我想要做的是有一个 暂停 按钮 使我能够暂停下载 直到点击 恢复
  • 检查算术运算中的溢出情况[重复]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • IronPython:没有名为 json 的模块

    我安装了 IronPython 我的 python 文件如下所示 import sys print sys version import json 运行它的代码 var p Python CreateEngine var scope p C
  • 在非活动联合成员上使用“std::addressof”是否定义明确[重复]

    这个问题在这里已经有答案了 下面的代码是尝试实现constexpr的版本offsetof在 C 11 中 它可以在 gcc 7 2 0 和 clang 5 0 0 中编译 这取决于申请std addressof工会非活跃成员的成员 这是明确
  • 生产代码中的 LRU 实现

    我有一些 C 代码 需要使用 LRU 技术实现缓存替换 目前我知道两种实现LRU缓存替换的方法 每次访问缓存数据时使用时间戳 最后比较替换时的时间戳 使用缓存项的堆栈 如果最近访问过它们 则将它们移动到顶部 因此最后底部将包含 LRU 候选
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 如何一步步遍历目录树?

    我发现了很多关于遍历目录树的示例 但我需要一些不同的东西 我需要一个带有某种方法的类 每次调用都会从目录返回一个文件 并逐渐遍历目录树 请问我该怎么做 我正在使用函数 FindFirstFile FindNextFile 和 FindClo
  • 尚未处理时调用 Form 的 Invoke 时出现 ObjectDisposeException

    我们得到一个ObjectDisposedException从一个电话到Invoke在尚未处理的表格上 这是一些演示该问题的示例代码 public partial class Form2 Form void Form2 Load object
  • g++ 对于看似不相关的变量“警告:迭代...调用未定义的行为”

    考虑以下代码strange cpp include
  • 是否可以有一个 out ParameterExpression?

    我想定义一个 Lambda 表达式out范围 有可能做到吗 下面是我尝试过的 C Net 4 0 控制台应用程序的代码片段 正如您在 procedure25 中看到的 我可以使用 lambda 表达式来定义具有输出参数的委托 但是 当我想使
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网
  • 带重定向标准流的 C# + telnet 进程立即退出

    我正在尝试用 C 做一个 脚本化 telnet 项目 有点类似于Tcl期望 http expect nist gov 我需要为其启动 telnet 进程并重定向 和处理 其 stdin stdout 流 问题是 生成的 telnet 进程在
  • Googletest:如何异步运行测试?

    考虑到一个包含数千个测试的大型项目 其中一些测试需要几分钟才能完成 如果按顺序执行 整套测试需要一个多小时才能完成 通过并行执行测试可以减少测试时间 据我所知 没有办法直接从 googletest mock 做到这一点 就像 async选项
  • 实例化 Microsoft.Office.Interop.Excel.Application 对象时出现错误:800700c1

    实例化 Microsoft Office Interop Excel Application 以从 winforms 应用程序生成 Excel 时 出现以下错误 这之前是有效的 但突然间它停止工作了 尽管代码和 Excel 版本没有变化 我

随机推荐

  • JavaScript 函数中 var 和 this 的区别?

    var tools tools triangle function var originX 0 var originY 0 var tools tools triangle function this originX 0 this orig
  • HTTP POST 方法是否以查询字符串形式发送数据?

    我想知道 HTTP 上的 POST 方法是否以 QueryString 形式发送数据 或者是否使用特殊结构将数据传递到服务器 事实上 当我分析从客户端到服务器的 POST 方法的通信 例如使用 Fiddler 时 我没有看到任何 Query
  • 暂时忽略 subversion 忽略设置

    我有一堆通常想要忽略的文件 因此我在全局忽略以及文件夹属性忽略列表中列出了文件扩展名 但是 我一次性需要查看工作副本中所有未版本控制的文件 甚至是那些我通常想忽略的文件 如果不清除全局忽略 然后删除忽略文件夹属性 进行检查 然后重新添加忽略
  • 将可编辑文本框添加到图表中的特定数据点

    我正在尝试实现可编辑文本框 chartjs 或融合图表中的解决方案都可以 在 fusioncharts 中尝试使用触发器捕获数据点上的用户点击事件 在此处检查 fusionchart 示例中的 jsfiddle dataPlotClick
  • Ansible - 将注册变量保存到文件

    如何将注册的变量保存到文件中 我从tutorial hosts web servers tasks shell usr bin foo register foo result ignore errors True shell usr bin
  • PDO:行名称作为结果数组的索引

    我有这个 旧式 非 PDO MySQL 查询 代码没有收紧 只是为了准确地显示我的意思
  • Azure 应用服务上具有 OWIN“SystemWeb”的 Web API 应用程序

    我正在创建使用 NET 中的 Identity 2 1 0 框架的应用程序 我在 Visual Studio 2015 中作为空 Web 应用程序 模板 启动了项目 现在 我用Microsoft AspNet WebApi Owin 并且M
  • 如何检查给定用户是否是内置管理员组的成员?

    我需要以编程方式 在 NET 中 检查给定用户 域帐户 是否是当前计算机 执行应用程序的计算机 上内置管理员组的成员 是否可以 我不了解 Net 但在win32中 简单的方法是调用IsUserAnAdmin 如果您需要更多控制 您可以打开进
  • 如何将 Flask+React 应用程序部署到 Azure Web 服务

    我一直在我的本地主机上开发这个应用程序 它以 Flask 作为后端 本地主机 5000 和 React 作为前端 本地主机 3000 而且他们沟通得很好 现在我应该把它放在网上 以便其他人也可以看到它 我在 Azure 上没有太多经验 但是
  • 在 silverlight 应用程序中显示 pdf。 PDF 到 XAML

    我需要创建 silverlight 应用程序 客户将在其中看到一些 pdf 文件 PDF 文件必须位于 silverlight 控件内 并且不能呈现为图像 客户想要选择文本 为此目的我需要一些free将 pdf 文件转换为 xaml 的库或
  • Keras 中损失函数的导数

    我想在 keras 中创建以下损失函数 Loss mse double derivative y pred x train 我无法合并衍生术语 我努力了K gradients K gradients y pred x train x tra
  • WiX ICE30 错误但目录正确

    我的 WiX 3 10 3 3007 项目有 2 个不同的 web config 文件 它们安装在 2 个不同的位置 我的构建中的 2 个错误是 错误 ICE30 目标文件 svcenub9 con Web config 由 LFN 系统上
  • 什么是 Docker 镜像“层”?

    我是 Docker 的新手 我正在尝试确切地了解 Docker 是什么image是 Docker 镜像的每个定义都使用术语 层 但似乎没有定义 层 的含义layer 来自官方Docker 文档 我们已经看到 Docker 镜像是启动 Doc
  • 如何让 Twig 将 HTML 输出写入文件而不是浏览器?

    我有一个想要渲染的 Twig 模板 html 文件 将标记替换为 PHP 文件中的值 然而 我不想将渲染结果发送到浏览器 而是将其写入新的 html 文件 我想 Django 模板的解决方案也是类似的 我怎样才能在 PHP 中做到这一点 您
  • 按位乘以 5/8 观察溢出

    我被分配了一大堆问题 这是唯一一个我不知道如何优化的问题 目标是乘以 5 8 舍入到 0 并防止溢出 运算顺序是乘以 5 然后除以 8 即 11 5 8 6 优化的目标是使用 12 个或更少的运算符 规定仅此而已 允许 gt 运算和8 位整
  • JTable -> TableModeListener

    我有这个JTable有一个DefaultTableModel作为它的模型 桌子上我有几个秋千组件 JComboBox and JCheckBox 通过设置在特定列上DefaultCellEditor and DefaultCellRende
  • SecCopyErrorMessageString 在 swift 中给出“使用未解析的标识符”

    尝试使用 SecCopyErrorMessageString 来解释 errorCode 迅速 var result OSStatus result SecItemAdd query as CFDictionary nil if resul
  • Firebase 与 Swift 对observeEventType 的使用不明确

    因为这个我一直在拔头发 转到包含相关事件和多个教程的所有页面 我发现这里的代码没有任何问题 但不知怎的 如果我打印出值 有效 或将它们分配为 它就不会失败 NSArray 然后给我一个空数组 snapshot value 的打印显示 fri
  • 在 Netbeans 中编译简单的新 CUDA 项目

    我在 Netbeans 中创建了新的 C Application 并想要编译简单的 CUDA 例如 include
  • C11可选功能宏在哪里?

    C11 标准中写道 编译器应该提供一些宏来测试可选功能的存在 我可以在哪些标题中找到它们 例如位于哪里 STDC NO VLA 对于 GCC 即 如果我尝试找到 STDC NO COMPLEX into complex h我在那里没找到 它