gpt4 book ai didi

c - 作为结构初始化程序的 {} 和 {0} 有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 15:22:07 24 4
gpt4 key购买 nike

这有什么区别吗:

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++ 中,它将导致“值初始化”,这基本上意味着为每个成员调用默认构造函数(非类成员的零初始化)。

关于c - 作为结构初始化程序的 {} 和 {0} 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20499511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com