这有什么区别:
struct something s = {};
这个?
struct something s = {0};
据我所知,两者都将每个成员初始化为零。
答案 0 :(得分:8)
struct something s = {};
无效C (除非他们在C11中添加了它),但它是有效的C ++。 GCC似乎允许它在C程序中作为扩展(虽然我没有在http://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html的文档中提到它,但我可能只是错过了它。)
在C ++中,它将导致'value-initialization',这基本上意味着为每个成员调用默认构造函数(非类成员的零初始化)。