C的基本数据类型可以分为两类:整数和浮点数,不同的数据类型可以提供不同的范围和精度。
下面以(字节:8位)为单位来标明对数据类型的在不同操作系统中的所占内存大小
type | win32 | win64 | linux i686 | linux x86_64 |
---|---|---|---|---|
char | 1 | 1 | 1 | 1 |
unsigned char | 1 | 1 | 1 | 1 |
short | 2 | 2 | 2 | 2 |
unsigned short | 2 | 2 | 2 | 2 |
int | 4 | 4 | 4 | 4 |
unsigned int | 4 | 4 | 4 | 4 |
long | 4 | 4 | 4 | 8 |
unsigned long | 4 | 4 | 4 | 8 |
float | 4 | 4 | 4 | 4 |
double | 8 | 8 | 8 | 8 |
long int | 4 | 4 | 4 | 8 |
long long | 8 | 8 | 8 | 8 |
long double | 8 | 8 | 12 | 16 |
所以,不管是32位还是64位windows系统,C语文的每一种基本数据类型在两种系统所占内存大小都是相同的。
布尔类型
_Bool,布尔类型是一个无符号的整数,保存两个数值:
0:表示false;
1:表示true.
可以用bool表示_Bool。
浮点数
两种浮点数:实数浮点数类型和复数浮点数类型,
实浮点数可以为正数,也可以为负数。
复浮点数包含:一个实部和一个虚部,有3种复浮点数:
type | description |
---|---|
float _Complex | 代表实部和虚部都是float值 |
double _Complex | 代表实部和虚部都是double值 |
long _Complex | 代表实部和虚部都是long值 |
在每一种情况中,前缀部分的类型都叫做相应的实数类型,比如,double 是double _Complex的相应实数类型。
同样有3种虚数类型:
type | description |
---|---|
float _Imaginary | 代表虚部是float值 |
double _Imaginary | 代表虚部是double值 |
long _Imaginary | 代表虚部是long值 |
复数可以用实数和 I (大写字母I)来初始化,I定义在complex.h中。
网友评论