size_t
là loại sẽ được sử dụng để lập chỉ mục mảng khi bạn làm việc với một mảng tương đối chung. I E. khi bạn chỉ có một mảng trừu tượng char
s, int
s hoặc một cái gì đó khác.
Khi bạn đang làm việc với mảng cụ thể, tức là một mảng chứa một số thành phần cụ thể cho ứng dụng của bạn, bạn thường phải có "loại lựa chọn" để đếm hoặc lập chỉ mục các thực thể thuộc loại đó ứng dụng. Đó là loại bạn nên sử dụng. Ví dụ, nếu một số mảng chứa các bản ghi cho nhân viên của công ty, thì bạn đã có một "kiểu lựa chọn" trong chương trình mà bạn sử dụng để chỉ định "số lượng nhân viên". Đó là loại bạn nên sử dụng để lập chỉ mục mảng các bản ghi nhân viên. Nó có thể là unsigned int
, có thể là employee_count_t
hoặc một cái gì đó tương tự. Sử dụng naked size_t
cho mục đích đó là lỗi thiết kế.
Cũng lưu ý rằng, size_t
là loại không ngay lập tức dành cho lập chỉ mục mảng. Nó là một kiểu nhằm biểu diễn kích thước của đối tượng lớn nhất trong chương trình. Nó "hoạt động" đối với mảng bởi transitivity: mảng là các đối tượng, do đó size_t
luôn đủ để lập chỉ mục một mảng. Tuy nhiên, khi bạn thiết kế một chương trình có ý nghĩa hơn khi nghĩ về các hộp chứa chung , thay vì suy nghĩ về các mảng cụ thể. Hôm nay nó có thể là một mảng, ngày mai bạn có thể phải chuyển sang một danh sách liên kết hoặc một cây thay thế. Trong trường hợp chung, phạm vi của size_t
không đủ để biểu thị số phần tử trong vùng chứa trừu tượng, đó là lý do tại sao size_t
trong trường hợp này không phải là một lựa chọn tốt.
@Cha cảm ơn bạn, tôi không tìm thấy bài đăng này trước đây. – Anycorn