跳轉到內容

C 程式設計/stddef.h

來自華夏公益教科書,開放的書本,開放的世界

stddef.h 是 C 程式語言標準庫中的一個頭檔案,它定義了宏 NULL 和 offsetof,以及型別 ptrdiff_t、wchar_t 和 size_t[1]

在 C 中,可以使用以下方式包含標頭檔案 "stddef.h"

#include <stddef.h>

在 C++ 中,可以使用以下方式包含標頭檔案 "cstddef"

#include <cstddef>

名稱空間

[編輯 | 編輯原始碼]

標頭檔案 "stddef.h" 將其定義放在全域性範圍內;標頭檔案 "cstddef" 將 size_tptrdiff_t 放在名稱空間 std 中。

一個展開為 NULL 指標常量的宏。它可能根據編譯器和語言定義為 ((void*)0)、0 或 0L。

offsetof(type, member)

[編輯 | 編輯原始碼]

一個用於確定指定結構型別中指示成員欄位的位元組偏移量的函式宏。

型別 size_t

[編輯 | 編輯原始碼]

型別 size_t 表示用於表示記憶體區域物件的大小和用於取消引用陣列元素的適當型別。它的大小取決於實現;通常但在不必要的情況下,它在 32 位系統上具有 32 位表示,在 64 位系統上具有 64 位表示。它是無符號的。

此型別在某些實現中具有一個名為 ssize_t 的有符號變體,它在 UNIX 標頭檔案 "unistd.h" 中定義。對於 GNU C,型別 ssize_t 在 "stddef.h" 中定義,因此它與 size_t 位於同一個檔案中。

型別 wchar_t

[編輯 | 編輯原始碼]

一種特定於實現的“寬字元”型別,它在 C++ 程式語言中是預定義的,但在 C 程式語言中需要標頭檔案 "stddef.h" 或 "wchar.h"。

型別 ptrdiff_t

[編輯 | 編輯原始碼]

型別 ptrdiff_t 是一種可以儲存指向同一物件中兩個專案的兩個指標相減結果的型別。ptrdiff_t 的基礎型別因實現而異。

一個物件可能大於 PTRDIFF_MAX。兩個指標相減,其差值大於 PTRDIFF_MAX / PTRDIFF_MIN 會導致未定義的行為。

參考文獻

[編輯 | 編輯原始碼]
  1. http://pubs.opengroup.org/onlinepubs/7908799/xsh/stddef.h.html
[編輯 | 編輯原始碼]
華夏公益教科書