c - c99 中的同时结构成员初始化和定义

标签 c c99

我正在尝试创建一个 trie,除非另有说明,否则我需要让所有 bool 值都等于 false。然而,这种同时进行成员初始化和定义的格式显然只在 c++11 中有效……在 c99 中有什么办法可以做到这一点吗?

typedef struct
{
    bool booleans[28] = { false };
    struct node *next[27];
}node;

最佳答案

在 C 中,您不能在类型声明中进行初始化。

但默认初始化为所有未明确列出的成员提供 0,这与您的情况下的 false 相同。

所以在没有初始化的情况下声明node,然后用类似的东西声明变量

node X = { 0 };

关于c - c99 中的同时结构成员初始化和定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45380879/

相关文章:

C:读入多个文件

c - Stdin 、 stdout 、 stderr ,如何让我的程序从文本文件获取输入并输出到文本文件

c - 主要编译器/工具链对 C99 的支持情况如何?

C99, "Despite the name, a non-directive is a preprocessing directive."

c - 我如何告诉我的 IDE 以特定方式编译我的 CMake 项目?

c - 指向 FILE 的指针在根本不被使用的情况下自行清零

c - 在 C99 中强制结构体中枚举值的宽度

c - 指针如何与预定义的结构交互?

c - 为什么 C 中的复合文字是可修改的

使用 Curses 在 C 程序中创建一个盒子