我试图以三种方式将POD(仅int32_t
,char[4]
等)结构(它可以在其中包含多个POD结构)初始化为零:
struct my_struct s = {};
- 这给了我一个-Wmissing-field-initializers
警告
struct my_struct s {};
- 这给了我一个-Wmissing-field-initializers
警告
和
struct my_struct s = my_struct();
这不会产生任何警告
所有三个实例都属于零初始化语法,如此处所述 - http://en.cppreference.com/w/cpp/language/zero_initialization
为什么前两个警告?保证哪个实例化初始化我的结构包含所有字段0而没有任何垃圾值?
编辑 - 我正在使用gcc(g ++)4.8.4编译