Bu unsigned
"tipsiz" türün birkaç kez kullanıldığını gördüm, ancak bunun için bir açıklama görmedim. Sanırım karşılık gelen bir signed
türü var. İşte bir örnek:
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;
}
Şimdiye kadar topladıklarım:
- sistemimde, sizeof(unsigned) = 4
(32 bitlik işaretsiz int ima eder)
- başka bir türü işaretsiz sürüme dönüştürmek için bir kısaltma olarak kullanılabilir:
signed long int i = -42;
printf("%u\n", (unsigned)i);
Bu ANSI C mi yoksa sadece bir derleyici uzantısı mı?
long
yerinelong int
çok yaygındır, bu yüzden nedenunsigned
yerineunsigned int
kabul edilebilir olmadığından emin değilim .