Saya telah melihat unsigned
tipe "tanpa tipe" ini digunakan beberapa kali, tetapi tidak pernah melihat penjelasan untuk itu. Saya kira ada signed
tipe yang sesuai . Berikut contohnya:
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;
}
Apa yang telah saya kumpulkan sejauh ini:
- di sistem saya, sizeof(unsigned) = 4
(mengisyaratkan int 32-bit unsigned)
- ini dapat digunakan sebagai singkatan untuk mentransmisikan jenis lain ke versi unsigned:
signed long int i = -42;
printf("%u\n", (unsigned)i);
Apakah ANSI C ini, atau hanya ekstensi kompilator?
long
bukannyalong int
sangat umum jadi saya tidak yakin mengapaunsigned
bukannyaunsigned int
tidak bisa diterima.