fut*_*lib 4 c struct initialization
这有什么区别:
struct something s = {};
Run Code Online (Sandbox Code Playgroud)
还有这个?
struct something s = {0};
Run Code Online (Sandbox Code Playgroud)
据我所知,两者都将每个成员初始化为零.
struct something s = {};是无效的C (除非他们在C11中添加它),但它是有效的C++.GCC似乎允许它在C程序中作为扩展(虽然我没有在http://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html上的文档中看到它,但我可能只是遗漏了它).
在C++中,它将导致"值初始化",这基本上意味着为每个成员调用默认构造函数(非类成员的零初始化).