簡體   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