我们可以在声明或定义结构体变量后一次性定义它吗?全部放在单大括号中,例如
asd = {21,'H'};
如果无法完成,有任何特殊原因,因为它可以在声明的同一行中定义,例如:struct asd = {21,'H'};
?
struct test
{
int a;
char b;
}asd;
asd = {21,'H'}; // error: expected an expression
要求进行C 编程。
最佳答案
struct test
{
int a;
char b;
}asd;
是struct
test
和test
类型的变量asd
的定义。在 ;
处,您现在有一个名为 asd
的默认构造对象。当你尝试做
asd = {21, 'H'};
您正在尝试分配给 asd
和花括号列表,这将不起作用,因为它没有采用初始化列表的赋值运算符。
您可以在声明时初始化asd
,如下
struct test
{
int a;
char b;
}asd = {21, 'H'};
或者像这样进行作业
asd = (struct test){21, 'H'};
如果您选择使用赋值,请注意它必须在函数内部完成,而不是在全局空间中完成。
关于c - 变量声明完成后一次性初始化/定义结构变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39235602/