मैंने इस 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-बिट अहस्ताक्षरित int पर संकेत)
- यह अहस्ताक्षरित संस्करण के लिए एक और प्रकार के कास्टिंग के लिए शॉर्टहैंड के रूप में इस्तेमाल किया जा सकता है:
signed long int i = -42;
printf("%u\n", (unsigned)i);
यह एएनएसआई सी है, या सिर्फ एक संकलक विस्तार है?
long
इसके बजायlong int
बहुत आम है इसलिए मुझे यकीन नहीं है किunsigned
इसके बजायunsigned int
स्वीकार्य क्यों नहीं होगा।