簡體   English   中英

作為結構初始化器,{}和{0}之間有什么區別?

[英]What is the difference between {} and {0} as struct initialisers?

這有什么區別:

struct something s = {};

還有這個?

struct something s = {0};

據我所知,兩者都將每個成員初始化為零。

struct something s = {}; 是無效的C (除非他們在C11中添加它) ,但它是有效的C ++。 GCC似乎允許它在C程序中作為擴展(雖然我沒有在http://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html上的文檔中看到它,但我可能只是遺漏了它)。

在C ++中,它將導致'值初始化',這基本上意味着為每個成員調用默認構造函數(非類成員的零初始化)。

暫無
暫無

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

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