原生C有通用符号吗?

2024-05-26

在GCC10中,gcc默认为fno-common。这意味着,所有暂定定义的符号都不通用。我认为gcc符合C规范,但本地C程序中似乎没有通用符号。通用符号仅适用于扩展语法吗?


原生C有通用符号吗?

阅读C11标准n1570 https://web.cs.dal.ca/~vlado/pl/C_Standard_2011-n1570.pdf. 它的索引甚至没有提到常见的符号。

另请仔细阅读海湾合作委员会文档 https://gcc.gnu.org/onlinedocs/gcc/ and 这个草案 http://starynkevitch.net/Basile/bismon-chariot-doc.pdf report.

也许您参考的是ELF https://en.wikipedia.org/wiki/Executable_and_Linkable_FormatLinux 上使用的文件格式目标文件 https://en.wikipedia.org/wiki/Object_file and 可执行文件 https://en.wikipedia.org/wiki/Executable。在那里你可以找到常见符号的提及,这些符号往往被弃用......阅读 Linux ABI 规范等here https://refspecs.linuxfoundation.org/.

我的建议是将所有公共符号声明为extern在一些头文件中(#include-d 在你的大部分*.c文件),并定义它们once(没有extern) in a single 翻译单位 https://en.wikipedia.org/wiki/Translation_unit_(programming)。你可以使用简单的预处理器 https://gcc.gnu.org/onlinedocs/cpp/技巧(例如X-macros https://en.wikipedia.org/wiki/X_Macro).

您可能对使用 C 代码生成器感兴趣,例如lemon https://www.hwaci.com/sw/lemon/ or SWIG https://swig.org/,或开发您的脚本(使用GNU awk https://www.gnu.org/software/gawk/manual/gawk.html or Guile https://www.gnu.org/software/guile/guile.html or Python https://python.org or GPP https://logological.org/gpp等等... ....)简单来说元编程 https://en.wikipedia.org/wiki/Metaprogramming技巧(autoconf https://www.gnu.org/software/autoconf/可能会很鼓舞人心)生成一些 C 代码。配置您的构建自动化 https://en.wikipedia.org/wiki/Build_automation tool (GNU make https://www.gnu.org/software/make/, ninja https://ninja-build.org/...) 适当地。

您可能有兴趣使用静态分析仪选项 https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html and 预编译头文件 https://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html最近的海湾合作委员会。也看看Clang 静态分析器 https://clang-analyzer.llvm.org/ and 铿锵整齐 https://clang.llvm.org/extra/clang-tidy/ and Frama-C https://frama-c.com/.

你肯定想通过-Wall -Wextra -g -H to https://gcc.gnu.org/onlinedocs/gcc/Invoking-GCC.html#Invoking-GCC gcc并阅读如何调试小程序 https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ and Modern C https://modernc.gforge.inria.fr/download.html.

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

原生C有通用符号吗? 的相关文章

  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • HTTPWebResponse 响应字符串被截断

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

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 带动态元素的 WPF 启动屏幕。如何?

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

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

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

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • GCC 如何运行其他程序?

    也许标题并没有那么准确地表达问题 我知道当我跑步时gcc foo cGCC 调用其他为其完成所有工作的子程序 使 gcc 主程序只是一个接口 但这到底是如何完成的呢 是否使用system or exec或者其他一些功能 我之所以想知道这个是
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • org.osgi.framework.BundleException:找不到包:org.eclipse.equinox.console

    命令 eclipse SDK 4 2RC3 win32 x86 64 001 eclipse plugins gt java jar org eclipse osgi 3 8 0 v20120529 1548 jar console 异常
  • Jquery - 仅发送表单中的一些值

    使用 checkTL 函数 我需要将输入值发送到服务器 例如 仅将输入值发送到类为 sideon 的 div 中 因此 在示例中 我需要 服务器端 仅获取 inputside0 和 inputside3 的值 这怎么可能 干杯 使用 AJA
  • 如何为自定义手势识别器实现velocityInView:?

    我正在实施一个自定义UIGestureRecognizer子类 我想实施velocityInView 同样的方式UIPanGestureRecognizer已经做到了 但我不确定如何去做 如何计算以点 秒为单位的速度 Firstly 如果您
  • iPhone存储然后从Documents文件夹中读取文件

    这一定很容易 但我想将一个文件放在 文档 文件夹中 该文件在启动时读入 我有关于如何阅读的代码 并已确认其在正确的目录中查找 但是 当我保存在 xcode 中的 Resources 文件夹中时 我的文件 RootList txt 存储在 R
  • Objective-C 中可以创建私有财产吗?

    Objective C 中可以创建私有财产吗 我确实知道一种私有财产功能可以通过另一种方式实现 但我对特定问题感兴趣 谢谢 是的 可以 但是代码看起来有点奇怪 如果你打电话它只会给你一些警告 你必须自己检查警告 在您的实现文件 m 中 in
  • JFileChooser 上的系统外观布局,但具有 Nimbus 外观主题

    JFileChooser 上的窗口外观和感觉布局比其他类似 nimbus 的外观和感觉要好得多 所以我正在寻找一种方法来拥有系统外观和感觉的布局 但在顶部有 nimbus 或其他主题 这可能吗 如果可以的话怎么办呢 这是可能的 虽然我不知道
  • 我可以将 Braintree.js 与 .NET Web 应用程序一起使用吗?

    我这几天一直在研究 Braintree Payments 我喜欢它的架构 概念等 在浏览完文档和 NET 演练后 我注意到 NET 的所有示例都在 MVC3 中 我正在尝试使用常规 Web 表单将 Braintree 集成到我当前的 NET
  • 仅当单击复选框时才更改 ListViewItem 的选中状态

    默认情况下 双击 ListViewItem 会切换其选中状态 我只想通过单击项目的复选框或在突出显示项目时按空格键来更改选中状态 这容易做到吗 该解决方案涉及 3 个事件和 1 个 bool 类型的状态变量 private bool inh
  • 在Python中,如果我返回“with”块内,文件仍然会关闭吗?

    考虑以下 with open path mode as f return line for line in f if condition 文件是否会正确关闭 或者是否使用return以某种方式绕过上下文管理器 https docs pyth
  • 转换不同世纪的日期

    我有暂存表 其中包含格式为 mm dd yy 的字符串形式的日期 我有 Oracle 11g 程序在加载到主表之前将字符串转换为日期格式 我在用着to date 03 20 34 mm dd rr 转换为日期格式 输出错误为 03 20 2
  • 如何从 .Net 打印对话框中删除打印机?

    我正在开发一个 Winforms 应用程序 它允许用户打印一些不同的 Reporting Services 报告 不幸的是 如果用户尝试使用 Adob e PDF 打印机打印为 PDF 则会崩溃 我们无法解决此问题 因此作为解决方案 我们希
  • C++ 中带有 lambda 的简单自定义迭代器

    假设我有一个容器 其中包含int 一个作用于包含以下内容的容器的函数Point 并且我有一个函数可以给出一些int给我相应的Point它代表 想象一下我已经在一些大的场景中索引了场景中的所有点std vector
  • 如何让一个 Flask 应用程序监听两个不同的端口?

    是否可以有一个单一的 Flask 应用程序 其路由位于两个不同的端口上 我的 Flask 应用程序需要侦听 Webhooks 并且由于某些安全原因 它无法在默认端口上接收外部 POST 请求 可以做这样的事情吗 app route hook
  • Device.BeginInvokeOnMainThread 的用途是什么?

    我希望有人向我解释什么是 Device BeginInvokeOnMainThread 以及它的用途是什么 还有一些使用案例的示例 只是添加一个例子 假设你有一个异步方法DoAnyWorkAsync如果你这样称呼它 仅作为示例 DoAnyW
  • 如何在 mySQL 中定义自定义 ORDER BY 顺序

    在 MySQL 中如何定义自定义排序顺序 为了尝试解释我想要的内容 请考虑这张表 ID Language Text 0 ENU a 0 JPN b 0 DAN c 1 ENU d 1 JPN e 1 DAN f 2 etc 在这里 我想返回
  • 如何将日期格式设置为 1900 年代?

    我正在预处理数据 一列代表日期 例如 6 1 51 我正在尝试将字符串转换为日期对象 到目前为止我所拥有的是 date row 2 strip format m d y datetime object datetime strptime d
  • 使用 Android 数据绑定时,如何通过 xml 为自定义 setter 传递多个参数

    假设我有一个自定义 setter 方法 其中需要两个参数 BindingAdapter imageUrl placeholder public static void loadImage ImageView imageView String
  • 将对象传递给 uibinder 中定义的小部件的构造函数

    我试图将我的应用程序的 EventBus 通过其构造函数传递给 UiBinder 中声明的小部件 我使用 UiConstructor 注释来标记接受 EventBus 的构造函数 但我不知道如何从 ui xml 代码中实际引用该对象 也就是
  • QuantLib:构建关键利率风险

    我能够为国债市场建立一条贴现曲线 然而 我希望用它来找出单个债券 最终是债券投资组合 的关键利率风险 我正在寻找的关键利率风险是 如果我拥有 30 年期债券 并且我们改变用于贴现债券的 1 年期利率 同时保持其他利率不变 那么债券的价格会变
  • 原生C有通用符号吗?

    在GCC10中 gcc默认为fno common 这意味着 所有暂定定义的符号都不通用 我认为gcc符合C规范 但本地C程序中似乎没有通用符号 通用符号仅适用于扩展语法吗 原生C有通用符号吗 阅读C11标准n1570 https web c