size_t 또는 ssize_t를 사용해야합니다.
이 질문에 이미 답변이 있습니다.
내 코드에서는 int 또는 unsigned int를 사용하지 않습니다. 나는 휴대용을 위해 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
그러나 나는 그것을 발견했다 :
부호없는 정수 유형은 스토리지를 비트 배열로 취급하는 용도에 이상적입니다. int 대신 unsigned를 사용하여 양의 정수를 나타 내기 위해 1 비트를 더 얻는 것은 거의 좋은 생각이 아닙니다. 부호없는 변수를 선언하여 일부 값이 양수인지 확인하려는 시도는 일반적으로 암시 적 변환 규칙에 의해 무효화됩니다.
책 The C ++ Programming Language .
그래서 나는 의아해합니다. 내가 잘못? STL이 책의 제안을 따르지 않는 이유는 무엇입니까?
ssize_t
반환 값이 유효한 크기이거나 오류를 나타내는 음수 값일 수있는 함수에 사용됩니다. 최소한 범위 [-1, SSIZE_MAX]
( SSIZE_MAX
시스템에 따라 다름)에 값을 저장할 수 있습니다 .
따라서 size_t
바이트 단위로 크기를 반환하려는 경우와 바이트 단위 ssize_t
로 크기 또는 (음수) 오류 값을 반환 할 때마다 사용해야합니다.
참조 : http://pubs.opengroup.org/onlinepubs/007908775/xsh/systypes.h.html
ssize_t
표준에 포함되어 있지 않으며 휴대용이 아닙니다. size_t
객체의 크기를 다룰 때 사용되어야합니다 ( ptrdiff_t
포인터 차이에 대해서도 마찬가지입니다).
참고 URL : https://stackoverflow.com/questions/15739490/should-use-size-t-or-ssize-t
'IT TIP' 카테고리의 다른 글
grid.arrange를 사용하여 플롯의 변수 목록을 어떻게 정렬합니까? (0) | 2020.10.18 |
---|---|
AngularJs에서 글로벌 http 시간 제한을 설정하는 방법 (0) | 2020.10.18 |
pip install numpy 관련 문제-RuntimeError : Broken toolchain : cannot link a simple C program (0) | 2020.10.18 |
블루투스 애플리케이션을 테스트하기 위해 Android 에뮬레이터를 사용하는 방법은 무엇입니까? (0) | 2020.10.18 |
바로 가기를 통해 전구를 여는 방법은 무엇입니까? (0) | 2020.10.18 |