名稱空間
變體
操作

size_t

來自 cppreference.com
< c‎ | 型別
定義於標頭檔案 <stddef.h>
定義於標頭檔案 <stdio.h>
在標頭檔案 <stdlib.h> 中定義
定義於標頭檔案 <string.h>
定義於標頭檔案 <time.h>
在標頭檔案 <uchar.h> 中定義
(C11 起)
在標頭檔案 <wchar.h> 中定義
(自 C95 起)
typedef /*實現定義*/ size_t;

size_tsizeofoffsetof_Alignof(C23 前)alignof(C23 起) 的結果的無符號整型,具體取決於資料模型

size_t 的位寬不小於 16。

(C99 起)

目錄

[編輯] 注意

size_t 可以儲存任何型別(包括陣列)的理論上可能的最大物件大小。

size_t 通常用於陣列索引和迴圈計數。使用其他型別(例如 unsigned int)進行陣列索引的程式可能會在例如 64 位系統上失敗,當索引超過 UINT_MAX 或依賴於 32 位模運算時。

[編輯] 可能的實現

typedef typeof(sizeof(0)) size_t; // valid since C23

[編輯] 示例

#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
 
int main(void)
{
    const size_t N = 101;
    int numbers[N];
    size_t sum = 0;
    for (size_t ndx = 0; ndx < N; ++ndx)
        sum += numbers[ndx] = ndx;
    size_t size = sizeof numbers;
    printf("sum = %zu\n", sum);
    printf("size = %zu\n", size);
    printf("SIZE_MAX = %zu\n", SIZE_MAX);
}

可能的輸出

sum = 5050
size = 404
SIZE_MAX = 18446744073709551615

[編輯] 參考

  • C23 標準 (ISO/IEC 9899:2024)
  • 7.19 常見定義 <stddef.h> (p: TBD)
  • 7.20.3 其他整數型別的限制 (p: 待定)
  • C17 標準 (ISO/IEC 9899:2018)
  • 7.19 常用定義 <stddef.h> (p: 211)
  • 7.20.3 其他整數型別的限制 (p: 215)
  • C11 標準 (ISO/IEC 9899:2011)
  • 7.19 常見定義 <stddef.h> (p: 288)
  • 7.20.3 其他整數型別的限制 (p: 293)
  • C99 標準 (ISO/IEC 9899:1999)
  • 7.17 常用定義 <stddef.h> (p: 253)
  • 7.18.3 其他整數型別的限制 (p: 258)
  • C89/C90 標準 (ISO/IEC 9899:1990)
  • 4.1.6 常用定義 <stddef.h>

[編輯] 另請參閱

減去兩個指標時返回的有符號整型
(typedef) [編輯]
從結構體型別開頭到指定成員的位元組偏移量
(函式宏) [編輯]