2014-10-30 71 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