gpt4 book ai didi

c - 声明 BufferData Data[16] = {0} 是什么意思

转载 作者:太空狗 更新时间:2023-10-29 16:05:29 25 4
gpt4 key购买 nike

我正在检查一个 C dll 并遇到了一个结构

BufferData{int Len; int Ant; unsigned char Data[512]}

然后通过创建数组来初始化结构

BufferData Data[16] = {0}

鉴于 Data 是一个结构数组,我不确定这会做什么。

最佳答案

这是 C 初始化程序的怪癖。 C 没有“半初始化”变量;变量未初始化或完全初始化。

如果初始化器指定的值少于结构或数组的成员数,则所有剩余元素都将递归地隐式初始化为零。

因此 {0} 是一个通用初始化器:它将第一个字段(无论可能是什么)设置为 0 并自动设置所有剩余字段(如果有)也为 0

在您的情况下,第一个字段是 Data 的第一个元素的第一个成员,即我们明确设置 Data[0].Len 并依赖于零其他一切的初始化。

关于c - 声明 BufferData Data[16] = {0} 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50673040/

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