C90:如何在没有 C99 扩展的情况下在 C 中全局初始化此结构

2023-12-07

我想知道使用 C90 初始化该结构的最佳方法是什么,同时仍然保持整洁。

在我的头文件中,将其称为 test.h,我定义了以下结构:

 struct s_test_cfg{
      char *a[3];
      char *b[3];
      char *c[3];
 }

然后我将其声明为 extern 结构,以便我可以在 .c 文件中全局初始化它:

 extern struct s_test_cfg test_cfg;

现在在我的 .c 文件中,我希望能够在全局范围内声明类似的内容(显然我要编写的内容在 C90 中不受支持):

 struct s_test_cfg test_cfg =
 { .a = {"a", "b", "c"},\
   .b = {"d", "e", "f"},\
   .c = {"g", "h", "i"} };

显然,这使得您想要做的事情变得非常整洁和透明。如何在我的 C 文件中初始化全局结构,使其与此语法一样干净?谢谢。


struct s_test_cfg test_cfg = {
    { "a", "b", "c" },  /* .a */
    { "d", "e", "f" },  /* .b */
    { "g", "h", "i" },  /* .c */
};

可能是最干净的选择(除了给自己一个 C99 编译器之外;GCC 和 Intel C 都支持 C99)。

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

C90:如何在没有 C99 扩展的情况下在 C 中全局初始化此结构 的相关文章

随机推荐

  • 从被调用方法捕获异常

    关于程序流程 这个问题已经困扰我一段时间了 我想知道是否可以从方法中捕获错误 以阻止它执行通常遵循它的方法 如下例所示 我无法开始工作 public class MyClass public static void main String
  • 忽略 py2exe 中的library.zip

    我需要一个可执行文件 exe 它从文件中获取一些参数 用户可以根据他 她的需要配置这些参数 由于我在 python 中创建了脚本 因此我使用 py2exe 来创建该可执行文件 虽然我可以放置一个名为的可配置文件设置 dat作为数据文件并用它
  • 如何将 jackson objectmapper dateformat 配置添加到 spring mvc 配置中?

    我有一个关于 Jackson 2 1 的问题 我的 pojo 有一些日期属性 我想将其转换为字符串 我将其解决在 spring servlet xml 中 但它没有用 我不喜欢使用 JsonSerialize using JsonDateS
  • Android:从特定电话号码接收短信

    我的应用程序是否可以从特定电话号码接收短信 而不让它触发系统通知 但让所有其他消息传递到默认短信应用程序进行正常处理 如果是这样 系统如何知道哪个进程首先进入队列来选择接收哪些消息 我没有尝试这个 但理论上它应该有效 在 Android 中
  • 如何从 Java 中的 JSON 字符串中删除元素?

    我有一个 json 作为字符串 我需要使用 java 代码从中删除一个元素 感谢你的帮助 Example 尝试了数组和其他东西 但没有运气 输入 需要删除图像 widget debug on window title Sample Konf
  • 复制 java.util.Random 类型的实例变量以创建相同状态的对象

    我正在实施一个模拟退火 SA 算法 我需要复制状态 例如记住迄今为止的最佳解决方案 我实现了一个复制方法 因为不鼓励使用java的clone SA 是一种启发式算法 因此下一步要采取的步骤是随机确定的 这是通过使用Random对象 我也想复
  • 如何在 Windows 10 上使用 IPC::Run 捕获超时异常?

    我正在尝试捕获超时异常IPC Run在 Windows 10 上 使用 Strawberry Perl 版本 5 30 1 use strict use warnings use feature qw say use Data Dumper
  • 最小化工作簿/工作表但保持表单打开

    有没有办法最小化工作簿 工作表但能够保持表单打开 我已经尝试过代码 application visible false and userform1 show vbmodeless 但这会隐藏所有活动的工作簿 并且工具栏功能区也会消失 有没有
  • 获取属于个人 Triadic Census 类别的 Triad 节点列表

    通过执行 Networkx triadic census 算法 我可以获得每种类型的三元普查中节点数量的字典 triad census social nx triadic census social graph to directed 现在
  • 虚函数 C#

    我明白什么是虚函数 但我不明白的是他们内部是如何工作的 class Animal virtual string Eat return Eat undefined class Human Animal override string Eat
  • PDFTK 并删除 XFA 格式

    从 PDF 表单中删除 XFA 格式是否会出现任何问题 我正在使用 PDFTK 来填写表单 发现如果表单是 XFA 则 PDFTK 不起作用 除非我先执行 drop xfa 命令来创建新的模板表单 我注意到的一件事是 如果我不执行 drop
  • 是否可以从 .NET Framework 项目引用 .NET 5 项目?

    我有一些相当大的 NET Framework 应用程序想要升级到 NET 5 但一次性升级它们会很麻烦 我正在考虑逐步做到这一点 从应用程序中最 核心 的项目开始 然后从那里开始工作 但这似乎不起作用 当我尝试从 NET Framework
  • 根据组计算存在/缺席情况

    我有一个数据框 其中包含两个位置的许多物种的丰度数据 sp1 sp2 sp3 sp4 SiteA 0 12 0 0 SiteA 0 3 0 0 SiteA 1 0 0 0 SiteB 0 0 6 0 SiteB 2 1 1 0 SiteB
  • 如何使用信号将 python 字典发送到 QML 接口?

    我想发送字典 其中包含动态创建 qml 对象所需的数据 从 PySide2 类发送到 QML 接口 并且由于我需要响应某些事件来执行此操作 因此我需要使用信号和槽 由于我刚刚开始使用 QML 和 python 我尝试创建一个简单的项目只是为
  • 浏览器同步无头环境错误

    所以我刚刚开始学习 Angular 2 并运行之后npm installgit bash 上的命令并打开我的文本编辑器 我试图运行npm start命令启动 typescript 和 lite 服务器 一切都很顺利 直到出现这个错误 1 B
  • Scala/Slick 普通 SQL:以映射形式检索结果

    我有一个简单的方法可以使用 Sclick 纯 SQL 方法从数据库检索用户 object Data implicit val getListStringResult GetResult List String prs gt 1 to prs
  • 如何等待后台工作者完成处理?

    我有 3 个后台工作人员 每个工作人员处理 24 位位图图像的一个通道 Y Cb Cr 每个 8 位图像的处理需要几秒钟 并且可能不会同时完成 完成后我想将通道合并回一张图像 当单击按钮时 每个backgroundWorkerN RunWo
  • PHP嵌入html图像作为链接

    如何在 php 中使用图像作为链接 我从来没有将两个 html 元素放在一个 echo 中 所以这对我来说有点新鲜 这是我的代码 htmltest php 这是我的代码 我收到以
  • iPhone - 将 mp3 转换为 wav?

    有没有办法可以在我的 iPhone 应用程序中将 mp3 文件转换为 wav aiff 文件 我有一个 mp3 但我想将它与其他文件合并 而我知道可以做到这一点的唯一方法是使用 PCM 格式 有人可以帮我从这里出去吗 Thanks 我尝试过
  • C90:如何在没有 C99 扩展的情况下在 C 中全局初始化此结构

    我想知道使用 C90 初始化该结构的最佳方法是什么 同时仍然保持整洁 在我的头文件中 将其称为 test h 我定义了以下结构 struct s test cfg char a 3 char b 3 char c 3 然后我将其声明为 ex