このunsigned
「タイプレス」タイプが数回使用されているのを見たことがありますが、その説明は見たことがありません。対応するsigned
タイプがあると思います。次に例を示します。
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;
}
これまでに収集したもの:
-私のシステムではsizeof(unsigned) = 4
(32ビットのunsigned intでヒント)
-別の型をunsignedバージョンにキャストするための省略形として使用される可能性があります:
signed long int i = -42;
printf("%u\n", (unsigned)i);
これはANSICですか、それとも単なるコンパイラ拡張ですか?
long
の代わりlong int
は非常に一般的であるため、unsigned
代わりのunsigned int
が受け入れられない理由がわかりません。