读书人

32位/64位机下常用数据类型字节数(C语

发布时间: 2013-01-18 10:22:42 作者: rapoo

32位/64位机上常用数据类型字节数(C语言)(转的)

可用如sizeof(char),sizeof(char*)等得出

32位编译器

char :1个字节

char*(即指针变量): 4个字节(32位的寻址空间是2^32,即32个bit,也就是4个字节。同理64位编译器)

short int : 2个字节

int:??4个字节

unsigned int : 4个字节

float:??4个字节

double:???8个字节

long:??4个字节

long long:??8个字节

unsigned long:?4个字节

?

64位编译器

char :1个字节

char*(即指针变量): 8个字节

short int : 2个字节

int:??4个字节

unsigned int : 4个字节

float:??4个字节

double:???8个字节

long:??8个字节

long long:??8个字节

unsigned long:?8个字节

?

?

#import <Foundation/Foundation.h>

struct {

? ? short a1;

? ? short a2;

? ? short a3;

}A;

struct {

?? long long a1;

? ? short a2;

}B;

?

int main (int argc, const char * argv[])

{

?

? ? @autoreleasepool {

?

? ? ? ? char *ss1="0123456789";

? ? ? ? char ss2[]="0123456789";

? ? ? ? char ss3[100]="0123456789";

? ? ? ? int ss4[100];

? ? ? ? char q1[]="abc";

? ? ? ? char q2="a\n";

? ? ? ? char *q3="a\n";

? ? ? ? char *str1=(char *)malloc(100);

? ? ? ? void *str2=(void *)malloc(100);

? ? ? ? NSLog(@"%lu",sizeof(ss1));//8

? ? ? ? NSLog(@"%lu",sizeof(ss2));//11

? ? ? ? NSLog(@"%lu",sizeof(ss3));//100

? ? ? ? NSLog(@"%lu",sizeof(ss4));//400

? ? ? ? NSLog(@"%lu",sizeof(q1));//4

? ? ? ? NSLog(@"%lu",sizeof(q2));//1

? ? ? ? NSLog(@"%lu",sizeof(q3));//8

? ? ? ? NSLog(@"%lu",sizeof(str1));//8

? ? ? ? NSLog(@"%lu",sizeof(str2));//8

? ? ? ? NSLog(@"%lu",sizeof(A));//6

? ? ? ? NSLog(@"%lu",sizeof(B));//16

?

?

?

?

?

? ? }

? ? return 0;

}


?

?

?

?

?

?

?

读书人网 >C语言

热点推荐