gpt4 book ai didi

c++ - 使用 `StructType structInstance = {};` 初始化结构的行为是什么?

转载 作者:行者123 更新时间:2023-11-28 01:41:02 25 4
gpt4 key购买 nike

使用 StructType structInstance = {}; 初始化结构的行为是什么?它只是使用默认构造函数和/或将所有成员数据初始化为 null 吗?有关 Vulkan 教程中的示例,请参阅以下内容:

VkApplicationInfo appInfo = {};
appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
appInfo.pApplicationName = "Hello Triangle";
appInfo.applicationVersion = VK_MAKE_VERSION(1, 0, 0);
appInfo.pEngineName = "No Engine";
appInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0);
appInfo.apiVersion = VK_API_VERSION_1_0;

最佳答案

基于 this documentation , VkApplicationInfo 是一个聚合。此外,它只包含标量(原始)类型的成员。

使用 { } 初始化聚合意味着每个成员都像使用 { } 一样进行初始化。不调用构造函数。

使用 { } 初始化标量类型等同于使用 = 0 进行初始化。所以枚举和整数类型的成员被初始化为零,指针被初始化为空指针。

注意:对于非聚合结构,对象将为 value-initialized .

关于c++ - 使用 `StructType structInstance = {};` 初始化结构的行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47147069/

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