C:sizeof(),sizeof()和sizeof

时间:2014-01-11 16:56:04

标签: c sizeof

我在此之前已经在C上看了一篇帖子。我忘记了它的含义,但绝对不是我想在这里问的问题 - sizeof

评论部分的2位回答者之间存在争议。这是两者之间激烈的辩论,但从来没有明确说过一个解释。

我试图找到它两天,但我找不到它,因此我的问题在这里。谷歌搜索没有产生任何结果。

焦点: sizeof()sizeof ()sizeof

所以这些人基本上有两种类型:

第一组:

一位学者以里奇的名义发誓并且永远不会驾驶汽车,因为他试图将自己的车牌登记在:

sizeof ()sizeof()之间的空格与政府(在某些国家/地区 - () - 允许使用车牌)不允许空数字/字母之间的空格。

第二组:

每隔一段时间,一位装饰好的C老兵带着扎染的衬衫,当被问到:“我真的不认识男人,有什么区别?我甚至都不知道这笔交易是什么。我甚至不记得..那些常春藤Lea ...... sizeof()sizeof ()sizeof,我不用担心,伙计。 “

那么,sizeof是否应该在sizeof与其()之间或甚至没有()之间写一个空格,或者真的没关系?

我欢迎来自C专家和学者的解释。那些不太适合上述类型的人 - 自学成才的C Bobs和Marys - 在他/她的手臂上纹有“C99和Ritchie”也受到欢迎。

这对我没有任何影响,但我只是好奇是否在sizeof()之间划出一个“标准”,甚至是()之间的空格}。

或者他们真的完全相同 - 对我来说会很有趣。

3 个答案:

答案 0 :(得分:7)

所有产生相同的结果,你使用的完全取决于偏好。

请注意,如果要提供类型名称,则必须使用parens。有关详细信息,请访问:What does sizeof without () do?

答案 1 :(得分:5)

sizeof()sizeof ()没有区别。但sizeofsizeof ()略有不同。该标准说明了这一点:

6.5.3一元运算符:

sizeof unary-expression
sizeof ( type-name )   

如果操作数是类型名称,则需要()。否则,对于一元表达式,您可以在不使用()的情况下使用它。

答案 2 :(得分:1)

快速查看C规范示例:

  1. ()在不需要时使用sizeof

    sizeof *dp
    
  2. sizeof()之间使用空格(如同类型名称一样)。

    sizeof (struct ss)
    
  3. 显然,OP的3种风格都是允许的,规范并不强制要求3中的任何一种(除了()以及类型名称)。

    恕我直言,我同意@drew_w关于sizeof()的评论。