各个编译器上字节为什么不同
发布时间: 2024-01-24 15:39:47
int所占的字节数是根据要运行的系统架构决定的,察清编译器决定了程序要输出的对应架构,对于不凯判同的架构,int占的字节数不同。
1、16位编译器
char :1个字节
char*(即指针变量盯没改): 2个字节
short int : 2个字节
int: 2个字节
unsigned int : 2个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
2、32位编译器
char :1个字节
char*: 4个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
B. 不同编译器为什么对数据分配的存储单元大小不同,分配的大小与程序运行有关吗
额,不同的编译器对同一种类型变量分配的存储单元大小不同。。。不同就不同了。。。没有为什么。。。毕竟当初没有统一的标准。不过都是微小的差别,影响不大。我们不需要知道为什么不同,只要知道它们分配的确实不同就行了。
分配的大小与程序运行有关的。同样是一个int型,在VC下被分配4字节,在TC下被分配2字节。实际程序运行的时候,也是前者吃掉4字节的内存,后者吃掉2字节的内存。
热点内容