上一篇写了数据类型和变量的本质含义,这一次来自定义一个数据类型,并通过sizeof来进一步证明其本质,同时也体现数据类型和变量之间的关系。
#include<stdio.h>
typedef int INT32; //这里将int型自定义(改名)为INT32;
typedef unsigned char BYTE; //将char型改名为BYTE;
typedef struct _demo;
{
short s;
BYTE b1;
BYTE b2;
INT32 1;
} DEMO;
int main()
{
INT32 i32; //定义INT32型变量 i32;
BYTE byte; //定义BYTE型变量byte
DEMO d; //定义DEMO型变量d;
printf("#d,#d\n",sizeof(INT32),sizeof(i32)); //输出INT32型和变量i32的内存大小
printf("#d,#d\n",sizeof(BYTE),sizeof(byte));
printf("#d,#d\n",sizeof(DEMO),sizeof(d));
return 0;
}
程序最终运行结果是
4,4
1,1
8,8
由此结果可以看出,程序中原本的数据类型,其本质都是固定内存大小,我们重新定义了一个名字,但是通过sizeof来计算,仍然能够计算出其内存大小。也就证明了数据类型的本质即固定内存大小。
同样的,变量也就是提前来申请并命名了一段存储空间,其大小与其定义的数据类型相等。