2010-01-21 9 views
135

शीर्षक के अनुसार मैं आईफोन पर उद्देश्य-सी में मौलिक डेटा प्रकारों के बारे में पूछना चाहता हूं। तो क्या कोई अच्छा दस्तावेज है जहां यह लिखा गया है? मुझे उस आकार की आवश्यकता है जिस पर चर का प्रतिनिधित्व किया गया है और चर की सीमा है। तो उदाहरण में: लघु int - 2 बाइट्स - हस्ताक्षरित: -32768 से 32767 और हस्ताक्षरित: 0 से 65535 यह केवल एक उदाहरण है। तो कृपया अगर कोई साइट के बारे में जानता है तो उसे यहां लिखें।आईफोन पर उद्देश्य-सी में टाइप

http://reference.jumpingmonkey.org/programming_languages/objective-c/types.html

या इस कोड को चलाने: :)

उत्तर

333

यह एक अच्छा सिंहावलोकन है

32 बिट प्रक्रिया:

NSLog(@"Primitive sizes:"); 
    NSLog(@"The size of a char is: %d.", sizeof(char)); 
    NSLog(@"The size of short is: %d.", sizeof(short)); 
    NSLog(@"The size of int is: %d.", sizeof(int)); 
    NSLog(@"The size of long is: %d.", sizeof(long)); 
    NSLog(@"The size of long long is: %d.", sizeof(long long)); 
    NSLog(@"The size of a unsigned char is: %d.", sizeof(unsigned char)); 
    NSLog(@"The size of unsigned short is: %d.", sizeof(unsigned short)); 
    NSLog(@"The size of unsigned int is: %d.", sizeof(unsigned int)); 
    NSLog(@"The size of unsigned long is: %d.", sizeof(unsigned long)); 
    NSLog(@"The size of unsigned long long is: %d.", sizeof(unsigned long long)); 
    NSLog(@"The size of a float is: %d.", sizeof(float)); 
    NSLog(@"The size of a double is %d.", sizeof(double)); 

    NSLog(@"Ranges:"); 
    NSLog(@"CHAR_MIN: %c", CHAR_MIN); 
    NSLog(@"CHAR_MAX: %c", CHAR_MAX); 
    NSLog(@"SHRT_MIN: %hi", SHRT_MIN); // signed short int 
    NSLog(@"SHRT_MAX: %hi", SHRT_MAX); 
    NSLog(@"INT_MIN: %i", INT_MIN); 
    NSLog(@"INT_MAX: %i", INT_MAX); 
    NSLog(@"LONG_MIN: %li", LONG_MIN); // signed long int 
    NSLog(@"LONG_MAX: %li", LONG_MAX); 
    NSLog(@"ULONG_MAX: %lu", ULONG_MAX); // unsigned long int 
    NSLog(@"LLONG_MIN: %lli", LLONG_MIN); // signed long long int 
    NSLog(@"LLONG_MAX: %lli", LLONG_MAX); 
    NSLog(@"ULLONG_MAX: %llu", ULLONG_MAX); // unsigned long long int 

जब (एक iPhone 3GS पर चलने आइपॉड टच और पुराने iPhones को एक ही परिणाम मिलना चाहिए) आपको मिलता है:

Primitive sizes: 
The size of a char is: 1.     
The size of short is: 2.     
The size of int is: 4.     
The size of long is: 4.     
The size of long long is: 8.    
The size of a unsigned char is: 1.  
The size of unsigned short is: 2.   
The size of unsigned int is: 4.   
The size of unsigned long is: 4.   
The size of unsigned long long is: 8.  
The size of a float is: 4.    
The size of a double is 8.    
Ranges:         
CHAR_MIN: -128       
CHAR_MAX: 127       
SHRT_MIN: -32768      
SHRT_MAX: 32767       
INT_MIN: -2147483648     
INT_MAX: 2147483647     
LONG_MIN: -2147483648     
LONG_MAX: 2147483647     
ULONG_MAX: 4294967295     
LLONG_MIN: -9223372036854775808   
LLONG_MAX: 9223372036854775807   
ULLONG_MAX: 18446744073709551615 

64 बिट प्रक्रिया:

The size of a char is: 1. 
The size of short is: 2. 
The size of int is: 4. 
The size of long is: 8. 
The size of long long is: 8. 
The size of a unsigned char is: 1. 
The size of unsigned short is: 2. 
The size of unsigned int is: 4. 
The size of unsigned long is: 8. 
The size of unsigned long long is: 8. 
The size of a float is: 4. 
The size of a double is 8. 
Ranges: 
CHAR_MIN: -128 
CHAR_MAX: 127 
SHRT_MIN: -32768 
SHRT_MAX: 32767 
INT_MIN: -2147483648 
INT_MAX: 2147483647 
LONG_MIN: -9223372036854775808 
LONG_MAX: 9223372036854775807 
ULONG_MAX: 18446744073709551615 
LLONG_MIN: -9223372036854775808 
LLONG_MAX: 9223372036854775807 
ULLONG_MAX: 18446744073709551615 
+6

ध्यान दें कि iOS 7 एसडीके के रिलीज के साथ, कुछ प्रकार के 64 बिट मोड में बड़े हैं। – JeremyP

+13

64 बिट प्रक्रिया के लिए अद्यतन – jjxtra

+0

बहुत बढ़िया उत्तर वास्तव में सहायक है। मजेदार हालांकि, स्विफ्ट में आप बस "var" घोषित कर सकते हैं और उसे उस हाहा पर छोड़ सकते हैं :) –

20

ध्यान दें कि आप भी ऑब्जेक्टिव-सी में पूरी तरह से अच्छी तरह से C99 निश्चित-चौड़ाई प्रकार का उपयोग कर सकते हैं:

#import <stdint.h> 
... 
int32_t x; // guaranteed to be 32 bits on any platform 

wikipedia page एक सभ्य है यदि आपके पास सी मानक की एक प्रति नहीं है, तो आपको इस शीर्षलेख में क्या उपलब्ध है (वर्णन करना चाहिए, हालांकि, उद्देश्य-सी केवल सी का एक छोटा विस्तार है)। उपयोगी होने के लिए आपको हेडर limits.h और inttypes.h भी मिल सकते हैं। नई 64 बिट मेहराब के लिए

+0

एसआईएनटी 32, यूआईएनटी 32, आदि भी है (कोर ऑडियो में बहुत कुछ इस्तेमाल किया जाता है)। –

12

अद्यतन

Ranges: 
CHAR_MIN: -128 
CHAR_MAX: 127 
SHRT_MIN: -32768 
SHRT_MAX: 32767 
INT_MIN: -2147483648 
INT_MAX: 2147483647 
LONG_MIN: -9223372036854775808 
LONG_MAX: 9223372036854775807 
ULONG_MAX: 18446744073709551615 
LLONG_MIN: -9223372036854775808 
LLONG_MAX: 9223372036854775807 
ULLONG_MAX: 18446744073709551615 
संबंधित मुद्दे