J'ai vu ce unsigned
type "sans type" utilisé plusieurs fois, mais je n'ai jamais vu d'explication. Je suppose qu'il existe un signed
type correspondant . Voici un exemple:
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;
}
Ce que j'ai rassemblé jusqu'à présent:
- sur mon système, sizeof(unsigned) = 4
(fait allusion à un int non signé 32 bits)
- il pourrait être utilisé comme un raccourci pour convertir un autre type en version non signée:
signed long int i = -42;
printf("%u\n", (unsigned)i);
Est-ce ANSI C, ou juste une extension de compilateur?
long
au lieu delong int
est très courant, donc je ne sais pas pourquoiunsigned
au lieu deunsigned int
ne serait pas acceptable.