繁体   English   中英

归零Struct的char数组成员

[英]Zero out a char array member of a Struct

我见过C ++将结构数组归零吗? 和其他SO职位。 不幸的是,我还没有发现任何可以初始化结构的char数组成员的东西。

我有这个结构

struct SettingsData {
  ModeType Mode = ModeType::Off;
  char Zone[26];
  double Temperature = 0.0;
  OnOffState Heater = OnOffState::Off;
  OnOffState Airconditioner = OnOffState::Off;
  OnOffState Fan = OnOffState::Off;
  bool ApplianceOn = false;
};

我正在寻找执行此操作的C ++方法。 我意识到我应该使用成员初始化器列表,但是我不知道如何初始化char数组。 我懂了

用作初始化的数组

错误。

我什至尝试过

  char Zone[26] = {'\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
               '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0',
               '\0', '\0', '\0', '\0', '\0', '\0', '\0', '\0'};

没有编译错误,但是我仍然在Zone成员中看到不需要的“数据”。

一些嵌入式工具链要求您调用内置函数来初始化数据,这是启动函数的一部分,然后,初始化函数会将初始化数据从ROM复制到RAM中的工作内存空间。

例如,在瑞萨电子RX平台上,需要调用_INITSCT()函数。 根据编译器文档:

调用RAM区域节(_INITSCT)的初始化例程。 未初始化的数据段被初始化为零。 对于初始化的数据段,将ROM区域的初始值复制到RAM区域。 _INITSCT作为标准库提供。

这也适用于您的系统吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM