【问题标题】:sizeof vs sizeof() in standard C? [duplicate]标准C中的sizeof vs sizeof()? [复制]
【发布时间】:2014-12-26 11:34:02
【问题描述】:

我看到一些直接使用 sizeof 的代码,想知道它是否是标准 C。令我惊讶的是,它工作得很好。这是一个例子:

#include <stdio.h>
#include <string.h>

int main()
{
   char buff[255];
   printf("size %d\n", sizeof buff);
   return 0;
}

Output: size 255

如您所见,在上面的示例中,我使用了sizeof &lt;variable&gt; 而不是sizeof(&lt;variable&gt;)

请多指教。

【问题讨论】:

  • sizeof 是一个运算符,而不是一个函数。您可以同时使用这两种变体。
  • 谢谢。是的,这个问题已经得到了完美的回答

标签: c sizeof


【解决方案1】:

“当 sizeof 的操作数是类型时,它必须用括号括起来。但是当 sizeof 的操作数是变量时,这不是必需的。”--专家 C 编程:深 C 秘密。并且来自 c11 标准:

sizeof unary-expression
sizeof ( type-name )

【讨论】:

  • @Jongware:当然!我已经编辑了答案以引用它。感谢您指出这一点。
猜你喜欢
  • 1970-01-01
  • 2013-02-19
  • 2023-03-10
  • 2012-08-27
  • 2012-04-13
  • 2018-03-05
  • 2020-01-05
  • 2021-12-06
  • 2021-11-22
相关资源
最近更新 更多