을 특히,이 두 선언 하였다 :?.을합니까 이것은 C 언어와의 bignum 라이브러리와 GCC 특정 해킹의 주제에 오늘 아침 일찍 질문에서 발생한
을 32 비트 시스템에서typedef unsigned int dword_t __attribute__((mode(DI)));
및 64 비트 시스템에서
typedef unsigned int dword_t __attribute__((mode(TI)));
. 나는 주어진 맡기
이 그것을 달성 무엇이든 달성 할 수있는 방법이 존재하지 않음을 C 언어의 확장입니다 현재의 (C99) 표준.
제 질문은 간단합니다. 가정은 맞습니까? 그리고이 진술들은 근본적인 기억에 대해 무엇을 하는가? 나는 결과가 32 비트 시스템에서는 dword
인 경우 2*sizeof(uint32_t)
이고, 64 비트 시스템에서는 2*sizeof(uint64_t)
인 것으로 나는 생각한다.
을 나는 일이 필요 그냥 무슨. 그 때 이것을 극복하기위한 "표준"방법이 없습니까? 즉 128 비트 타입을 선언하겠습니까? 현재의 사용법에서'dword = word << 1 '을 안전하고 쉽게 할 수 있습니다; 내가 그것을 도울 수 있다면 나는 그것을 함수 등으로 대체하지 않을 것이다. –
@Ninefingers : GCC에서는'__int128'을 사용할 수 있습니다. http://gcc.gnu.org/onlinedocs/gcc/_005f_005fint128.html. –
@Ninefingers : GCC는 확장 유형'__int128_t'과'__uint128_t'를 지원합니다 (적어도 64 비트 플랫폼에서는 32 비트 타겟에 대해서는 확실하지 않습니다). –