gpt4 book ai didi

c - struct数组元素初始化

转载 作者:太空宇宙 更新时间:2023-11-04 07:01:09 25 4
gpt4 key购买 nike

我如何使用这些值初始化以下结构:

struct test_str {
unsigned char Add[6];
unsigned int d;
unsigned char c;
}my_str;

我尝试了这个但是导致了错误:

struct test_str {
unsigned char Add[6];
unsigned int d;
unsigned char c;
}my_str {.Add[0]=0x11,.Add[0]=0x22,.Add[0]=0x33,
.Add[0]=0x44,.Add[0]=0x55,.Add[0]=0x66,
.d=0xffe,.c=10};

最佳答案

在现代 C++11 或更高版本中(因为你的问题最初只标记为 C++)你有所谓的 aggregate initialization .它是这样工作的:

struct test_str {
unsigned char Add[6];
unsigned int d;
unsigned char c;
} my_str { {0x11, 0x22, 0x33, 0x44, 0x55, 0x66},
0xffe,
10
};

int main()
{}

Live on Coliru

内部一对大括号并不是必需的,但为了清楚起见,我更喜欢它。

PS:你应该得到一个很好的介绍 C++ book这样您就可以学习这门语言的基础知识。

编辑

在 C 中(当您重新标记问题时)和 C++11 之前的版本,您需要一个等号。此外,在 C 中,内部大括号不是可选的:

struct test_str {
unsigned char Add[6];
unsigned int d;
unsigned char c;
} my_str = { {0x11, 0x22, 0x33, 0x44, 0x55, 0x66},
0xffe,
10
};

int main()
{}

关于c - struct数组元素初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38188345/

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