【发布时间】:2016-09-01 09:38:18
【问题描述】:
我正在使用没有任何构造函数的 C 风格结构,如下所示:
struct structName {
int mem1;
int mem2;
char mem3;
char mem4;
}
我正在创建这个结构的一个变量,我想将结构的所有成员初始化为零。我找到了以下方法。
struct structName structVar = {};struct structName structVar = {0};struct structName structVar = struct structName();
对于前两种方法,我的编译器给出“缺少成员初始化程序”警告。
第三种方法编译时没有警告。
- 它是有效的 C++ 语句吗?
- 使用方法 3 是否遗漏了一些真正的警告/错误?
- 除了memset()还有什么更好的替代方法吗?
【问题讨论】:
-
@101010 不,不一定。
struct foo { foo()=default; foo(int){} };. -
你的结构是什么样的?它有构造函数吗?析构函数?
-
在 C++ 中你根本不需要在那里写
struct,所以我想知道你“在互联网上搜索”时发现了什么资源。更喜欢从一本好书学习 C++... -
@lightness-races-in-orbit,好的,我可以删除“结构”。但我对初始化更感兴趣。
标签: c++ compiler-errors compiler-warnings