数据类型就像盒子一样存储物体,数据的类型决定了数据的存储大小。在C语言中,概括起来主要有如下四类数据类型:
基本数据类型(Basic types):主要是整数类型和浮点数类型。
枚举数据类型(Enumerated types):主要是被定义成离散型的整数值。
空类型(Void types):表明没有可用的值。
派生类型(Derived types):主要是指针类型、数据类型、结构体类型、共用体类型和函数类型。
但是根据不同的系统位数,数据存储大小会存在一些区别,具体平台可以参考下表:
如果要准确得到某个平台准确的数据存储大小,可以使用sizeof(type)获取,具体参考下面的程序。
#include <stdio.h>
int main()
{
printf("data size : n");
printf("char: %dn", sizeof(char));
printf("short: %dn", sizeof(short));
printf("int: %dn", sizeof(int));
printf("unsigned int: %dn", sizeof(unsigned int));
printf("long: %dn", sizeof(long));
printf("unsigned long: %dn", sizeof(unsigned long));
printf("long long: %dn", sizeof(long long));
printf("float: %dn", sizeof(float));
printf("double: %dn", sizeof(double));
printf("char*: %dn", sizeof(char*));
return 0;
}
在C语言中我们还可以给标准的数据类型取个别名,这里可以使用typedef关键字来定义一个新的类型。typedef关键字使用规则如下:
typedef 原始数据类型名 新定义数据类型名
对于不同的整数类型可能大小不同,如果我们通过如下定义,就可以很直观的知道相应的类型大小,还有结构体类型也常使用此关键字。
typedef int int32
typedef short int16
有两点需要特别注意:
- typedef可以声明各种类型名,但不能用来定义变量;
- typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型;