以ANSI C来说,C语言提供了如下4种基本数据类型:
char,占用一个byte,可以存放本地字符集中的一个字符。
int,整形,通常反映所用机器中整数的最自然长度
float,单精度浮点型
double,双精度浮点型。
与此同时,可以在这些基本类型的前面加上一些限定符。short和long两个限定符用于限定整数,在这种情形下,int可以省略。
关于各种数据类型占用的byte是这样规定的:
(1)short int通常为16bits,long int通常为 32bits,int可以是16bits或32bits。
(2)不同编译器根据硬件特性自主选择适合的类型长度,但要遵循一个限制原则:
short与int至少16bits,long至少32bits,且short类型不能长于int类型,而int类型不得长于long类型。
signed和unsigned这两个限定符可以限定char和任何整形,经unsigned修饰的数,总是正值或零,并遵循2的n次方定律。不带限定符的char类型是否带符号,取决于具体机器。
float,double,long double(表示高精度浮点数),它们的长度也取决于具体实现。它们可能表示相同长度,也可以表示两种或三种不同长度。
关于这些类型长度定义的符号常量以及它与机器和编译器相关的属性在和可以找到。
- platonic@ubuntu:~$ uname -a
- Linux ubuntu 2.6.24-22-generic #1 SMP Mon Nov 24 19:35:06 UTC 2008 x86_64 GNU/Linux
- platonic@ubuntu:~$ ./a.out
- short has 2 bytes
- int has 4 bytes
- long has 8 bytes
- float has 4 bytes
- double has 8 bytes
- platonic@ubuntu:~$
阅读(958) | 评论(0) | 转发(0) |