sizeof的返回值

2021-06-09 11:12:51 字數 688 閱讀 3128

最近在看webkit,在wtf/wtf/ownptrcommon.h有一段關於sizeof的:

template inline void deleteownedptr(t* ptr)

既然webkit這麼寫,那麼肯定合理了,於是查閱資料總結一下,sizeof的返回值:

1.正值

常見,2.零值

確實存在0,在一下**中:

int buf[0];

sizeof(buf) //0

有些編譯器支援陣列元素個數為0的,至少我在g++上就可以通過。

返回上面的webkit原始碼

如果sizeof(t)為0,則sizeof(known)=-1。那麼,上面的**就好理解了。

3.負值

int len = -2;

int p[len];

sizeof(p) //-8

說明了為負值的情況。

讀一讀webkit原始碼收穫蠻大的,裡面**的相容性和可移植性等確實值得學習,用到的一些技巧很能提高個人的程式設計內功。

注:以上所有**均在gcc (gcc) 4.6.2 20111027 (red hat 4.6.2-1)上編譯通過。

C語言 關於sizeof返回值的理解

1.運算子 sizeof 的返回值是 unsigned 型別,x 是 int 型別,比較時會將 x 公升級為 unsigned 型別,而 1 變為 unsigned 型別是乙個很大的整數。2 sizeof操作符能夠得到乙個結構的整體長度,包括因邊界對齊而跳過的那些位元組。3 sizeof 和 str...

主函式的返回值返回給誰 主函式返回值

responsebody報406 原因是 要返回的物件沒有setget方法sdfsdf 自定義視 析器和缺省視 析器需同時使用才好用 如果以redireci或forward字首,那麼 走缺省視 析器 return redirect index.jsp return forward index 需寫全...

有返回值和無返回值函式

前面在定義函式時,有些函式使用了return語句,有些函式沒有使用return語句,使用return語句與不使用return語句有什麼區別呢?由前面的章節我們知道,若定義函式時沒有使用return語句,則預設返回乙個none。要返回乙個none,可以只寫乙個return,但要返回具體的數值,就需要在...