sizeof:运算符还是函数?

2 c sizeof

可能重复:
为什么sizeof是运营商?

为什么sizeof应该是C中的运算符,而不是函数

它的用法类似于函数调用,如sizeof(int).

它应该是某种伪函数吗?

leo*_*loy 5

函数调用是在运行时评估的。sizeof必须在编译时评估(尽管我相信 C99 对此引入了一些例外)

  • 除非你有VLA... (5认同)

Oli*_*rth 5

因为它不是一个功能; 编写一个可以将类型作为参数并返回其大小的函数是不可能的!另请注意,这sizeof是在编译时实现的,如果您在变量上使用括号,则不需要括号.