const char指针在结构中声明
const char pointer declaration in struct
我正在尝试这样做,但是我的编译器不会让我:
struct {
const char* string = "some text";
} myAnonymousStruct;
我相信这是因为在结构声明中无法进行任何作业 - 它们应该在功能或其他方面进行。但是,我什至真的不允许分配const char*
变量吗?
如果有人可以让我知道我缺少的东西,我真的很感激。thx
您的代码在支持C 11或更高版本的编译器上都很好。
在C 11之前,无法默认初始化结构的成员。相反,必须在创建实例结构后初始化它们。
如果适合您的需求,则可以使用类似的汇总初始化:
struct {
const char* string;
} myAnonymousStruct = { "some text" };
但是,如果您试图默认初始化限制的一个实例,那么您可能需要给您的struct一个构造函数并在其中初始化成员。
struct MyStruct {
const char* str;
MyStruct() : str("some text") { }
};
MyStruct foo;
MyStruct bar;
在上一个示例中,foo
和bar
是MyStruct
的不同实例,均为str
初始化为"some text"
。
相关文章:
- 在哪里声明结构运算符重载
- 如何正确转发声明结构"using XXX"?
- 在C++我可以在不在本地声明结构的情况下将结构作为指针传递吗?
- 在 for 循环中声明结构是否合法C++?
- 为什么我们可以创建一个模板类结构,其中包含许多与声明结构时指定的参数不同的参数
- 当声明结构数组时,CPPCHECK停止对整个文件的分析
- C++ - 声明结构和类时不允许使用不完整的类型
- 在声明末尾或 main 中声明结构或类实例之间的区别
- 在模板类中声明结构,未为成员函数定义
- C++ .h 文件中转发声明结构,并在.cpp文件中定义结构
- 如何在C++中声明结构变量
- 在 C 中声明结构的新实例
- 在类内部声明结构
- 为什么可以用相同的名称声明结构和非结构
- 在结构定义内部声明结构的堆栈
- 为什么在声明结构时不能初始化结构中的向量成员?
- 在c++头文件中声明结构体
- 如何声明结构体?
- c++中声明结构体的问题
- 只在库cpp中有定义的前向声明结构