使用 C++ 中的自定义元素进行 Const 结构初始化
Const struct initialization with custom elements in C++
我正在将一些 C 代码移植到C++,我正在尝试使用一些值初始化结构。我希望结构存储在闪存(const(中而不是RAM中,并且其值是typedef'd元素。
最初,我是这样的:
typedef struct
{
typeA_t elementA;
typeB_t elementB;
uint8_t elementC;
} structTypeA_t;
为了在闪存中实例化它们,我简单地做了以下操作:
const structTypeA_t sA = {
.elementA = ONE,
.elementB = TWO,
.elementC = 3
};
我知道这种类型的初始化在C++是不允许的。如何在C++实现它?
指定的
初始值设定项不在C++中(尚未,但请查找 C++20(。所以你几乎以同样的方式做,但没有名称 - 参数的位置定义了它初始化的字段:
const structTypeA_t sA = {ONE,
TWO,
3
};
如果你总是需要使用相同的值进行初始化,那么你可以像这样定义结构:
struct structTypeA_t
{
typeA_t elementA = ONE;
typeB_t elementB = TWO;
uint8_t elementC = 3;
};
您现在可以在没有初始值设定项的情况下实例化它:
const structTypeA_t sA;
相关文章:
- 使用对const结构的const数组的引用进行构造
- 在只读(即 const)访问器上执行结构化绑定的最佳实践是什么?
- 如何使用函数的输出初始化 const 数组结构字段?
- 如何在类中声明静态 const 结构元素
- 获得const结构和CIN的功能
- 使用 C++ 中的自定义元素进行 Const 结构初始化
- 为什么在此模板结构中丢失了const
- 结构化绑定中的const引用扩展了分解对象的寿命
- const char指针在结构中声明
- 您如何使用成员正确初始化构造的结构,该构件是指向const值的const指针
- 用静态const成员构建类层次结构
- 如何将转换为 const char (C++) 的结构转换为结构 Objective-C
- 如何保证模板化结构中 const 静态成员的初始化顺序
- 错误:'const std::array<int, 3u>&'不是类、结构或联合类型
- C++ 成员引用基类型'Vertex *const'不是结构或联合
- 访问成员unordered_map中的数据时,C++const方法在结构中编译错误
- 为什么具有const成员的结构是可赋值的
- 使用const指针初始化const结构
- C++宏生成const结构
- 模板结构体的静态const成员的不同值