Ich habe diesen unsigned
"typenlosen" Typ ein paar Mal gesehen, aber nie eine Erklärung dafür gesehen. Ich nehme an, es gibt einen entsprechenden signed
Typ. Hier ist ein Beispiel:
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;
}
Was ich bisher gesammelt habe:
- auf meinem System sizeof(unsigned) = 4
(Hinweise auf ein 32-Bit-Int ohne Vorzeichen)
- es kann als Abkürzung für das Umwandeln eines anderen Typs in die vorzeichenlose Version verwendet werden:
signed long int i = -42;
printf("%u\n", (unsigned)i);
Ist das ANSI C oder nur eine Compiler-Erweiterung?
long
stattlong int
ist sehr verbreitet, daher bin ich mir nicht sicher, warumunsigned
stattunsigned int
nicht akzeptabel wäre.