제 코드에서 int 또는 unsigned int는 사용하지 않습니다. 나는 portable를 위해서만 size_t 나 ssize_t를 사용한다. 예를 들어 : strlen
는, string
, vector
... 모두가 size_t
를 사용은 size_t 또는 ssize_t를 사용해야합니다.
typedef size_t intc; // (instead of unsigned int)
typedef ssize_t uintc; // (instead of int)
때문에, 그래서 일반적으로 size_t
를 사용합니다. 그리고 음수 일 수있는 경우에만 ssize_t
을 사용합니다.
부호없는 정수 타입은 비트 배열로 저장을 치료하는 용도에 이상적입니다 :
는 그러나 나는 것을 찾을 수 있습니다. 정수 대신 부호없는 정수를 사용하면 양의 정수를 나타 내기 위해 비트를 하나 더 얻는 것이 거의 불가능합니다. 부호없는 변수를 선언하여 일부 값이 양수인지 확인하려는 시도는 일반적으로 암시 적 변환 규칙에 의해 무시됩니다.
The C++ Programming Language에 있습니다.
그래서 나는 의아해합니다. 내가 잘못? 왜 STL은 그 책에 대한 제안을 따르지 않습니까?
크기를 나타내는 standart 라이브러리에 사용되는'size_t '. 컨테이너의 크기가 부정적 일 수 있다면 이상 할 것입니다. 인터페이스가 동작을 나타냅니다. 나는 책이 일상적인 사용을 가정하며 인터페이스가 아닌 것으로 가정한다. – kassak
@kassak - 아니요,이 경우에는 부호없는 타입이 실제로 값에 대해 하나의 추가 비트를 얻는 데 사용됩니다. 위원회의 일부 구성원은 사용 가능한 메모리의 절반보다 큰'std :: vector '을 가질 수 있어야한다고 생각했습니다. 그리고 인용문은 "* 거의 * 결코"라고 말합니다 ... –
@Bo Persson, 감사합니다, C++ lib는 size_t 범위를 사용합니다. 그러나 그것은 우리에게 문제를 가져 왔습니다. int를 사용한다면, 우리는 그들을 비교할 때주의해야합니다. – hgyxbll