c++ - 使用 C++ 中的自定义元素进行 Const 结构初始化

标签 c++ struct designated-initializer

我正在将一些 C 代码移植到 C++,我正在尝试用一些值初始化一个结构。 我希望将结构存储在闪存(const)中而不是 RAM 中,并且它的值是 typedef 元素。

原来我是这样的:

typedef struct
{
    typeA_t elementA;
    typeB_t elementB;
    uint8_t elementC;
} structTypeA_t;

为了在 Flash 中实例化它们,我简单地执行了以下操作:

const structTypeA_t sA = {
    .elementA = ONE,
    .elementB = TWO,
    .elementC = 3
};

我知道这种类型的初始化在 C++ 中是不允许的。我如何在 C++ 中实现它?

最佳答案

指定的初始值设定项不在 C++ 中(但是,请寻找 C++20)。所以你几乎以同样的方式来做,但没有名字——参数的位置定义了它初始化的字段:

const structTypeA_t sA = {ONE,
                          TWO,
                          3
};

关于c++ - 使用 C++ 中的自定义元素进行 Const 结构初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55796782/

相关文章:

c++ - 对象似乎没有通过C++的引用传递

c++ - 结构和函数 - 不命名类型

arrays - 将 Fortran 派生类型数组作为结构传递给 C 函数

objective-c - 制作结构与对象所需的计算量

struct - 升压凤凰: Binding to reference members of structures?

objective-c - 在 Swift 类的指定初始化器中调用实例方法

c - 将异常数组归零

c++ - 如何将一个矩阵附加到另一个矩阵的末尾? (在 C++ 中使用 Boost 库)

c++ - 推导 Lambda 捕获类型

c++ - 为什么 Clang 决定允许在 C++ 中指定初始化器?