我尝试了以下程序
struct temp{
int ab;
int cd;
};
int main(int argc, char **argv)
{
struct temp *ptr1;
printf("Sizeof(struct temp)= %d\n", sizeof(struct temp));
printf("Sizeof(*ptr1)= %d\n", sizeof(*ptr1));
return 0;
}
Output
Sizeof(struct temp)= 8
Sizeof(*ptr1)= 8
在Linux中,我在很多地方观察到使用sizeof(*pointer)
。如果两者相同为什么是sizeof(*pointer)
used ??
我一般更喜欢sizeof(*ptr)
因为如果你稍后返回并更改你的代码,这样ptr
现在有不同的类型,您不必更新sizeof
。在实践中,您可以更改类型ptr
没有意识到再往下几行,您正在获取结构的大小。如果您没有多余地指定类型,那么当您稍后需要更改它时,搞砸的可能性就较小。
从这个意义上说,它是“可维护性代码”或“防御性代码”之一。
其他人可能有他们的主观原因。通常需要输入的字符较少。 :-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)