<分区>
我在结构中使用带有初始化值的 struct
,如下例所示。我不明白的是为什么编译器不能像在变量声明中那样在结构成员中设置 char[] = { .. }
的大小? Clang++ 给出以下错误:
error: array bound cannot be deduced from an in-class initializer
代码:
struct A
{
char s[] = { 'F', 'O', 'O', ... };
};
<分区>
我在结构中使用带有初始化值的 struct
,如下例所示。我不明白的是为什么编译器不能像在变量声明中那样在结构成员中设置 char[] = { .. }
的大小? Clang++ 给出以下错误:
error: array bound cannot be deduced from an in-class initializer
代码:
struct A
{
char s[] = { 'F', 'O', 'O', ... };
};
最佳答案
结构元素在创建时不能被初始化,因为结构定义了一个类型而不是一个可以被初始化的变量。只能在创建结构体对象后初始化结构体变量
例如
struct test
{
int var;
};
struct test struct_object = { 7 };
关于c++ - 为什么编译器不能像在变量声明中那样在结构成员中设置 char[] = { .. } 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22509876/