fixed size int를 쓰는건 좋지 않나요?

저는 프로그래밍할 때 주로 이걸 씁니다. 크기 예측이 쉬워서요. 그런데 게임 뉴스를 보면 32비트에서 64비트 엔진으로의 전환이 쉽지 않다 이런 얘기들이 많이 나오는데, 물론 32비트의 한계를 극복하기 위한 다양한 기법들을 다시 복구하는데 오는 어려움도 있겠지만, 단순히 생각해 보았을 때 이러한 고정 크기 변수들로 인해서도 문제가 생길 수 있겠다는 생각이 들었습니다. 그래서 검색해 보았는데, 포팅에 어려움이 생길 수 있다며 그냥 int를 쓰는게 더 좋고, 성능에도 문제가 생길 수 있다고 합니다. (16비트 아키텍쳐에서 u32를 쓴다던지)
이 밖에도 다른 안좋은 이유가 있을까요? 그렇다면 언제 쓰는게 좋을까요?

제가 예전에 감명깊게 읽었던 스택오버플로우의 답변을 소개해드리겠습니다.

2 Likes

아 그리고 제 경험상

고정크기 변수때문에 문제가 되는 상황보다 가변크기 변수 때문에 문제가 되는 상황이 더 많았습니다.

예를들면 제 컴퓨터에는 변수 타입의 크기가 4바이트라 그렇게 생각하고 구현했는데
다른 컴퓨터에서는 그 변수 타입의 크기가 2바이트라 버그가 생기는 뭐 그런것이죠.

잘 찾아보시면 운영체제별로, 아키텍처별로 크기가 변하는 타입들이 있습니다.
멀티 플랫폼을 지원하려고하면 주의해야하죠.

3 Likes

읽으면서 느낀건데 c++을 하는게 알고리즘을 작성하는 느낌이 아니라 컴퓨터 속으로 들어가야 하는 느낌이네요…

fixed를 선호하는 편입니다. 빌드 환경이 너무 다른 프로그램을 여러 개 동시에 개발하기 때문이죠. int라든지 long이라든지 사이즈가 다르면 너무 헷갈려서 int32_t와 같은 고정 자료형을 쓰는편입니다. 포팅이나 성능은 그렇게 고려하진 않네요 ㅋㅋ

1 Like