我在此之前已经在C
上看了一篇帖子。我忘记了它的含义,但绝对不是我想在这里问的问题 - sizeof
。
评论部分的2位回答者之间存在争议。这是两者之间激烈的辩论,但从来没有明确说过一个解释。
我试图找到它两天,但我找不到它,因此我的问题在这里。谷歌搜索没有产生任何结果。
焦点: sizeof()
或sizeof ()
或sizeof
所以这些人基本上有两种类型:
第一组:
一位学者以里奇的名义发誓并且永远不会驾驶汽车,因为他试图将自己的车牌登记在:
sizeof ()
,sizeof
和()
之间的空格与政府(在某些国家/地区 - ()
- 允许使用车牌)不允许空数字/字母之间的空格。
第二组:
每隔一段时间,一位装饰好的C老兵带着扎染的衬衫,当被问到:“我真的不认识男人,有什么区别?我甚至都不知道这笔交易是什么。我甚至不记得..那些常春藤Lea ...... sizeof()
,sizeof ()
或sizeof
,我不用担心,伙计。 “
那么,sizeof
是否应该在sizeof
与其()
之间或甚至没有()
之间写一个空格,或者真的没关系?
我欢迎来自C专家和学者的解释。那些不太适合上述类型的人 - 自学成才的C
Bobs和Marys - 在他/她的手臂上纹有“C99和Ritchie”也受到欢迎。
这对我没有任何影响,但我只是好奇是否在sizeof
和()
之间划出一个“标准”,甚至是()
之间的空格}。
或者他们真的完全相同 - 对我来说会很有趣。
答案 0 :(得分:7)
所有产生相同的结果,你使用的完全取决于偏好。
请注意,如果要提供类型名称,则必须使用parens。有关详细信息,请访问:What does sizeof without () do?
答案 1 :(得分:5)
sizeof()
和sizeof ()
没有区别。但sizeof
和sizeof ()
略有不同。该标准说明了这一点:
sizeof unary-expression
sizeof ( type-name )
如果操作数是类型名称,则需要()
。否则,对于一元表达式,您可以在不使用()
的情况下使用它。
答案 2 :(得分:1)
快速查看C规范示例:
()
在不需要时使用sizeof
。
sizeof *dp
在sizeof
和()
之间使用空格(如同类型名称一样)。
sizeof (struct ss)
显然,OP的3种风格都是允许的,规范并不强制要求3中的任何一种(除了()
以及类型名称)。
恕我直言,我同意@drew_w关于sizeof()
的评论。