[英]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.