【发布时间】:2019-04-22 15:25:25
【问题描述】:
我正在将一些 C 代码移植到 C++,并且我正在尝试用一些值初始化一个结构。 我希望将结构存储在闪存 (const) 中而不是 RAM 中,并且它的值是 typedef'd 元素。
原来我是这样的:
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++20 中是允许的(有一些限制)。您需要旧标准版本的解决方案吗?
标签: c++ struct designated-initializer