size_t
- kiểu kích thước - là kiểu số nguyên không âm có độ rộng tùy thuộc vào hỗ trợ của hệ điều hành và không nhỏ hơn 16-bit
. size_t
được định nghĩa trong các thư viện:
<stddef.h>
<stdio.h>
<stdlib.h>
<string.h>
<time.h>
<uchar.h>
<wchar.h>
Trong code C
tiêu chuẩn, kiểu size_t
thường được sử dụng cho các biến trị số index
để truy xuất mảng và các biến counter
đếm vòng lặp thay cho kiểu số nguyên không dấu unsigned int
. Lý do là vì thiết kế của unsigned int
có độ rộng cố định là 32-bit
và có thể sẽ bị tràn giá trị nếu sử dụng để đếm các bộ dữ liệu hay các vòng lặp lớn trong các chương trình 64-bit
.
#include <stdio.h>
#include <stdint.h>
#include <limits.h> void main ( int $argc, char* $argv[]
) { size_t $size = SIZE_MAX; // stdint.h unsigned int $uint = UINT_MAX; // limits.h printf ("Max value of size_t : %zu \n", $size); printf ("Max value of unsigned int : %u \n", $uint);
}
# ubuntu 64-bit
Max value of size_t : 18446744073709551615 Max value of unsigned int : 4294967295
Ngoài ra size_t
còn được sử dụng tại các vị trí định kiểu giá trị trả về và các tham số của các hàm trong thư viện tiêu chuẩn ví dụ như sizeof
, offsetof
, bsearch
, qsort
, v.v...
void* bsearch ( const void* key, const void* ptr, size_t count, size_t size, int (*comp) (const void*, const void*)
); void qsort ( void* ptr, size_t count, size_t size, int (*comp) (const void*, const void*)
);