我有一个简单的 pod 结构,例如:
struct T
{
int x;
float z;
}
我想将数据设为私有(private)并添加 getter/setter。我可以在该结构上使用 memset 吗?
memset(obj, 0, sizeof(T));
最佳答案
I want to make a data private and add getters/setters. Can I use memset on that struct ?
是的,只要类可以轻松复制,并且对象不是潜在重叠的子对象,您就可以使用 memset。
附注从技术上讲,C++ 并不能保证将 Memsetting float 设为零字节,尽管它在大多数系统上可能会这样做。字节的任何其他值都更没有意义。
P.P.S 指针也有同样的问题:Null 不能保证所有位都为零。
P.P.P.S。如果您的目的是将值设置为零,我想不出使用 memset 0 而不是使用值初始化和赋值的充分理由。
关于c++ - memset 和 struct 以及 getter/setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63111429/