typedef struct rem{
int addr;
char addrbuf[32];
} foo;
Run Code Online (Sandbox Code Playgroud)
这两个代码都返回相同的结果
foo addr;
printf("size is: %d\n",sizeof addr);
printf("size is: %d\n",sizeof (foo));
Run Code Online (Sandbox Code Playgroud)
大小是:36
大小是:36
但是什么时候我们应该使用sizeof
括号和不使用括号?
Rei*_*ica 24
当使用sizeof
一个类型,你需要周围的括号类型.将它与表达式一起使用时,则不会.但是你也可以在这种情况下包括它们,在这种情况下你不必担心运算符优先级.对于像这样的不常见的运营商,更少的人会确定优先级,因此清晰度肯定有帮助.
所以我会说最好总是使用它们.
Col*_*mbo 10
[expr.sizeof]/1:
操作数是一个表达式,它是一个未评估的操作数(第5章),或带括号的type-id.
因此,括号仅适用于类型.如果你喜欢使用的透明度和一致性括号(像我一样),你可以随时虽然使用它们,围绕一个括号表达形成另一种表达.
运算符优先级sizeof
不是很清楚,可能会引起烦恼.
此外,对于sizeof...
操作员,您始终必须使用括号(一致性的另一个原因).