2014-10-30 70 views
2

我看到了一些直接使用sizeof的代码,并想知道它是否是标准C.令我惊讶的是,它工作得很好。这里有一个例子:sizeof vs 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 <variable>代替sizeof(<variable>)

请扔在它更多的光。

+2

'sizeof'是一个运算符,而不是一个函数。你可以使用两种变体。 – Crozin 2014-10-30 12:19:18

+0

谢谢。是的,这个问题已经得到完美解答 – 2014-10-30 12:20:38

回答

3

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

sizeof unary-expression 
sizeof (type-name) 
+0

@Jongware:绝对!我编辑了答案来引用它。谢谢你指出。 – 2014-10-30 12:32:27