ฉันต้องการถามเกี่ยวกับประเภทข้อมูลพื้นฐานใน Objective-C บน iOS
ฉันต้องการขนาดที่มีการแสดงตัวแปรและช่วงของตัวแปร ดังนั้นในตัวอย่าง: short int - 2 ไบต์ - เซ็นชื่อ: -32768 ถึง 32767 และ unsigned: 0 ถึง 65535 นี่เป็นเพียงตัวอย่างเท่านั้น
ฉันต้องการถามเกี่ยวกับประเภทข้อมูลพื้นฐานใน Objective-C บน iOS
ฉันต้องการขนาดที่มีการแสดงตัวแปรและช่วงของตัวแปร ดังนั้นในตัวอย่าง: short int - 2 ไบต์ - เซ็นชื่อ: -32768 ถึง 32767 และ unsigned: 0 ถึง 65535 นี่เป็นเพียงตัวอย่างเท่านั้น
คำตอบ:
นี่เป็นภาพรวมที่ดี:
http://reference.jumpingmonkey.org/programming_languages/objective-c/types.html
หรือเรียกใช้รหัสนี้:
กระบวนการ 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 (iPod Touch และ iPhone ที่เก่ากว่าควรให้ผลลัพธ์เหมือนกัน) คุณจะได้รับ:
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
โปรดทราบว่าคุณสามารถใช้ประเภทความกว้างคงที่ C99 ได้อย่างสมบูรณ์ใน Objective-C:
#import <stdint.h>
...
int32_t x; // guaranteed to be 32 bits on any platform
หน้าวิกิพีเดียมีคำอธิบายที่ดีของสิ่งที่มีอยู่ในส่วนหัวนี้ถ้าคุณไม่ได้มีสำเนาของมาตรฐานซี (คุณควร แต่เนื่องจากวัตถุประสงค์ -C เป็นเพียงส่วนขยายเล็ก ๆ ของ C) คุณอาจพบส่วนหัวlimits.h
และinttypes.h
เป็นประโยชน์
อัปเดตสำหรับ arch 64 บิตใหม่
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
C
กัน