Types dans objective-c sur iPhone

Comme le titre l’indique, je veux poser des questions sur les types de données fondamentaux dans objective-c sur iPhone. Alors, y a-t-il une bonne documentation où cela est écrit? J’ai besoin de la taille sur laquelle la variable est représentée et de la plage de la variable. Donc, par exemple: short int – 2 octets – signé: -32768 à 32767 et unsigned: 0 à 65535 Ceci n’est qu’un exemple. Donc, s’il vous plaît, si quelqu’un connaît un site, écrivez-le ici. 🙂

Ceci est un bon aperçu:

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

ou exécutez ce code:

Processus 32 bits:

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 

Lorsqu’il est exécuté sur un iPhone 3GS (iPod Touch et les anciens iPhones devraient produire le même résultat), vous obtenez:

 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 

Processus 64 bits:

 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 

Notez que vous pouvez également utiliser parfaitement les types à largeur fixe C99 dans Objective-C:

 #import  ... int32_t x; // guaranteed to be 32 bits on any platform 

La page wikipedia a une description décente de ce qui est disponible dans cet en-tête si vous n’avez pas de copie du standard C (vous devriez, cependant, puisque Objective-C n’est qu’une petite extension de C). Vous pouvez également trouver les en-têtes limits.h et inttypes.h utiles.

Mise à jour pour le nouvel arc de 64 bits

 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