이 unsigned
"타입리스"유형이 몇 번 사용되는 것을 보았지만 이에 대한 설명은 본 적이 없습니다. 해당 signed
유형 이 있다고 가정 합니다. 예를 들면 다음과 같습니다.
static unsigned long next = 1;
/* RAND_MAX assumed to be 32767 */
int myrand(void) {
next = next * 1103515245 + 12345;
return((unsigned)(next/65536) % 32768);
}
void mysrand(unsigned seed) {
next = seed;
}
내가 지금까지 수집 한 내용 :
-내 시스템에서 sizeof(unsigned) = 4
(32 비트 unsigned int에 대한 힌트)
-다른 유형을 서명되지 않은 버전으로 캐스팅하는 약어로 사용할 수 있습니다.
signed long int i = -42;
printf("%u\n", (unsigned)i);
이 ANSI C입니까, 아니면 컴파일러 확장입니까?
long
대신에long int
매우 일반적이므로unsigned
대신unsigned int
허용되지 않는 이유 를 모르겠습니다 .