C 结构体成员的默认初始化
在 C 结构体中,默认情况下成员不会自动初始化为 0。要将结构体成员初始化为 0,有以下几种选项:
值初始化
使用大括号括起来的空大括号 { } 为所有成员分配默认值:
Snapshot s = {};
父结构递归
如果父结构体包含子结构体,则父结构体的值初始化也会将其子结构体成员初始化为0:
struct Parent { Snapshot s; }; Parent p = {}; // p.s.{x,y} will be zero
构造函数初始化
如果结构体有构造函数,可以在其参数中初始化成员list:
struct Snapshot { int x; double y; Snapshot():x(0),y(0) { } }; Snapshot s; // s.{x,y} will be zero
使用 () 进行值初始化
值初始化,用 () 表示,初始化成员,无论其类型如何:
struct Snapshot { int x; double y; }; Snapshot s = {x(), y()}; // s.{x,y} will be zero
请注意,值初始化对于模板结构很重要,确保不同类型的正确初始化。
以上是如何将 C 结构体成员初始化为零?的详细内容。更多信息请关注PHP中文网其他相关文章!