휴대용 코드는 long long을 사용해야 합니까, int64_t를 사용해야 합니까?
저는 C와 C++로 작성된 오픈 소스 코드베이스를 가지고 있습니다.저는 최소 64비트 너비가 보장되는 정수형을 찾고 있습니다. 이 정수형은 일반 사용자의 추가 작업 없이 오픈 소스 C 및 C++ 컴파일러로 대부분의 OS X(Intel, 64비트) 및 Linux 박스에서 안정적으로 컴파일할 수 있습니다.Windows 및 32비트 클라이언트 지원은 현재 중요하지 않습니다.
X에서 는 C모드를 OS X의 것 ).long long
이것지않지만지지다원니원합,하은도▁cl다니▁it▁).,를 지원하지만.long long
특정 버전 이후에 C99 모드가 활성화된 경우.
사용할 일반적인 제안입니까?int64_t
신에를 long long
휴대성이 중요한 목표일 때?형식 지정자를 사용하는 것은 어려운 일인 것 같습니다.
신뢰할 수 있는 캐스팅이 가능합니까?int64_t
long long
로 (그리고마찬로지가로그▁the지▁(▁to▁(가)unsigned
와동한에 uint64_t
을 가져가는 및합니다.long long
매개 변수로? (물론 다시 돌아옵니다.)
그런 관점에서, 만약 내가 GCC가 아닌 Clang 기능이 필요한 코드를 발송한다면, Clang은 Linux에서 선택한 컴파일러로 GCC를 대체할 것입니까?그 컴파일러는 최종 사용자에게 소스 코드를 제공할 때 대부분 기대할 수 있는 것입니까?
기본적으로, 저는 휴대용 C와 C++ 코드에 두 가지 유형을 모두 사용한 다른 개발자들에게 조언을 구하고 싶습니다. 그들은 위의 목표를 염두에 두고 더 나은 장기적인 방법을 제안할 수 있습니다.
류long long
그리고.unsigned long long
각각 최소 64비트의 표준 C 및 표준 C++ 유형입니다. 있는 한 경우를 는 이러한 유형을 -pedantic
모드 그러나 이 경우int64_t
또는uint64_t
C++ 2011 이전 컴파일러에서도 사용할 수 없습니다. <stdint.h>
사용할 수도 있습니다.즉, 내가 말할 수 있는 한, 당신이 어떻게 철자를 쓰는지는 별로 중요하지 않습니다.의 주요 <stdint.h>
특정 비트 수에 가장 적합한 값을 제공하는 것입니다.하지만 이러한 64비트를 int_least64_t
또는uint_least64_t
부터<stdint.h>
또는<cstdint>
(후자의 경우 이름은 네임스페이스에 정의됩니다.std
).
사용할 일반적인 제안입니까?
int64_t
대신에long long
휴대성이 중요한 목표일 때?
만약 컴파일러가 제공한다면 나는 매우 놀랄 것입니다.int64_t
하지만 아닙니다.long long
.
한다면long long
존재합니다. 최소 64비트를 가져야 합니다. 따라서 캐스팅은(u)int64_t
로.(unsigned) long long
가치를 보존합니다.
정확하게 64비트를 가진 유형이 필요한 경우(u)int64_t
최소한 64비트가 필요하다면,(unsigned) long long
완벽하게 괜찮아요, 그럴 것입니다.(u)int_least64_t
.
int64_t. int64_t를 사용하면 64비트를 의미하며 어디를 가든 64비트를 얻을 수 있습니다.long은 실제로 긴 만큼 구현에 의존합니다.즉, 긴 길이는 긴 길이 이상이어야 하지만 컴파일러와 플랫폼에 따라 다를 수 있습니다.
언급URL : https://stackoverflow.com/questions/12468281/should-i-use-long-long-or-int64-t-for-portable-code
'programing' 카테고리의 다른 글
container-registry.oracle.com/database/enterprise 에 대해 꺼내기 액세스가 거부되었습니다. (0) | 2023.07.07 |
---|---|
어떻게 t-sql의 "tinyint"를 c#에서 정수로 변환할 수 있습니까? (0) | 2023.07.07 |
Node.js 및 Microsoft SQL Server (0) | 2023.07.07 |
스프링 부트:치명적인 오류 컴파일: 잘못된 대상 릴리스: 17 (0) | 2023.07.07 |
벡터에서 x 값을 사용하여 요소 수 (0) | 2023.07.07 |