簡體   English   中英

初始化itimerspec結構-memset是一個不錯的選擇嗎?

[英]Initializing itimerspec struct - is memset a good choice?

幾年前,我問了一個問題, 如何用最少的代碼行將timespec結構初始化 為零狀態(nsec和sec等於零)。

許多回復告訴我不要使用memset ,因為這與跨平台不兼容,並且可能會發生許多其他問題。 結果,我采用了以下方式:

struct timeval freshStruct = struct timeval){0};

幾年后,我現在要初始化一個itimerspec結構,其中包含兩個timespec結構。 一種方法是讓我執行以下操作:

struct itimerspec alarmTimeFormatted;
alarmTimeFormatted.it_interval = (struct timespec){0};
alarmTimeFormatted.it_value = (struct timespec){0};

在StackOverflow上看到了其他答案,答案顯示使用memset在一行中初始化此結構itimerspec。

所以現在我很好奇-itimerspec結構是否有所不同,還是這些只是錯誤的答案? 有什么雄辯的方法可以只用一行來初始化外部/內部結構?

謝謝

這仍然是不好的做法。 Erik在注釋中給出了可能的解決方案,但通常在C ++中,我們使用構造函數: itimerspec::itimerspec() : it_interval { 0 }, it_value { 0 } { /***/ }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM