Widziałem ten typ "bez typów" używany kilka razy, ale nigdy nie widziałem wyjaśnienia tego. Przypuszczam, że istnieje odpowiedni typ signed
. Oto przykład:jaki jest niepodpisany typ danych?
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;
}
Co mam zebrane do tej pory:
- w moim systemie, sizeof(unsigned) = 4
(wskazówki na 32-bitowym unsigned int)
- to może być używane jako skrót do odlewania inny typ do wersji niepodpisanej:
signed long int i = -42;
printf("%u\n", (unsigned)i);
Czy to ANSI C, czy tylko rozszerzenie kompilatora?
Tak. "unsigned" to to samo, co "unsigned int", ale ja przeszukałem _UGG14/N1124 Committee Draft - 6 maja 2005 r. ISO/IEC 9899: TC2_ dla "unsigned" i nie mogłem znaleźć, gdzie jest zdefiniowane ... czy mógłbyś zacytować część, w której jest zdefiniowana? – user454322