Code Review 에 대한 검토에서 오늘 흥미로운 점을 발견했습니다 . @Veedrac 은이 대답 에서 가변 크기 유형 (예 : int
및 long
)을 uint64_t
and 같은 고정 크기 유형으로 대체 할 것을 권장했습니다 uint32_t
. 그 답변의 의견에서 인용 :
int와 long의 크기 (따라서 보유 할 수있는 값)는 플랫폼에 따라 다릅니다. 한편, int32_t의 길이는 항상 32 비트입니다. int를 사용한다는 것은 코드가 다른 플랫폼에서 다르게 작동한다는 것을 의미합니다. 일반적으로 원하는 것은 아닙니다.
공통 유형을 수정하지 않는 표준에 대한 추론은 여기 @supercat에 의해 부분적으로 설명 됩니다 . C는 당시 시스템 프로그래밍에 일반적으로 사용되었던 어셈블리와 달리 아키텍처 전반에서 이식 가능하도록 작성되었습니다.
디자인 의도는 원래 int 이외의 각 유형이 다양한 크기의 숫자를 처리 할 수있는 가장 작은 크기이고 +/- 32767을 처리 할 수있는 가장 실용적인 "일반 목적"크기 인 것으로 생각했습니다.
나에 관해서는, 나는 항상 int
대안을 사용 하고 걱정하지 않았습니다. 나는 항상 그것이 최고의 성능, 이야기의 끝에서 가장 유형이라고 생각했습니다. 고정 너비가 유용하다고 생각한 유일한 장소는 스토리지 또는 네트워크를 통한 전송을 위해 데이터를 인코딩 할 때입니다. 나는 다른 사람들이 작성한 코드에서 고정 너비 유형을 거의 보지 못했습니다.
70 년대에 갇혀 int
있습니까? 아니면 실제로 C99 시대와 그 이후 에 사용하기위한 근거가 있습니까?