c++ - size_t 뜻




size_t 또는 ssize_t[duplicate]를 사용해야합니다. (2)

ssize_t 는 반환 값이 유효한 크기이거나 오류를 나타내는 음수 값일 수있는 함수에 사용됩니다. 적어도 [-1, SSIZE_MAX] ( SSIZE_MAX 는 시스템에 따라 다름) 범위의 값을 저장할 수 있습니다.

바이트 단위로 크기를 반환 할 때마다 size_t 를 사용하고 바이트 단위로 크기를 반환하거나 (음수) 오류 값을 반환 할 때마다 ssize_t 사용해야합니다.

참조 : http://pubs.opengroup.org/onlinepubs/007908775/xsh/systypes.h.html

이 질문에는 이미 답변이 있습니다.

내 코드에서는 int 또는 unsigned int를 사용하지 않습니다. 나는 portable를 위해서만 size_t 나 ssize_t를 사용한다. 예 :

typedef size_t intc;    // (instead of unsigned int)
typedef ssize_t uintc;  // (instead of int)

strlen , string , vector ... 모두 size_t 사용하기 때문에 보통 size_t 사용합니다. 그리고 그것은 음수 일 때만 ssize_t 사용합니다.

그러나 나는 그것을 발견 :

부호없는 정수 유형은 저장소를 비트 배열로 취급하는 용도에 이상적입니다. 정수 대신에 부호없는 정수를 사용하면 양의 정수를 나타 내기 위해 비트를 하나 더 얻는 것이 거의 불가능합니다. 서명되지 않은 변수를 선언하여 일부 값이 양수인지 확인하려는 시도는 일반적으로 암시 적 변환 규칙에 의해 무시됩니다.

C ++ 프로그래밍 언어 책.

그래서 나는 당혹 스럽다. 내가 잘못? 왜 STL은 그 책에 대한 제안을 따르지 않습니까?


ssize_t 는 표준에 포함되어 있지 않으며 이식 가능하지 않습니다. size_t 는 객체의 크기를 처리 할 때 사용해야합니다 (포인터 차이에 대해서는 ptrdiff_t 도 있습니다).







size-t