我如何使用这些值在结构下面初始化:
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};
答案 0 :(得分:3)
在现代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()
{}
内部支撑并不是必需的,但为了清楚起见,我更喜欢它。
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()
{}