学习C第二章类型、运算符和表达式2: 数据类型和大小
2.2学习C第二章类型、运算符和表达式2: 数据类型和大小
在C语言当中, 只有以下几种基本的数据类型(data types):
Type | Description |
---|---|
char | a single type, capatable of holding one character in the local character set. |
int | an integer, typically reflecting the natural size of integers on the host machine. |
float | single-precision floating point. |
double | double-precision floating point. |
此外, 还有些适用于这些基本数据类型的修饰词(qualifier)。 short 和 long 用于整数类型(integers):
short int sh;
long int counter;
(int通常在这样的声明中被省略(omitted))
此举之意是在于在实际当中令short和long提供不同长度(lengths)的整数(integers); 一般来说, int类型的大小是其在所在机器上原生的占用空间大小。 short通常是16位(Bits)大小, 而long是32位(Bits), int的话要么是16位要么是32位。每一个编译器(Compiler)都可以随意选择对于目标硬件合适的大小, 不过其要满足条件: short和int至少要16Bits, long至少32Bits, 其中short的长度不能大于int, 也就是不能大于long。
修饰词signed或者unsigned可被用于字符(char)或者整数(integer)。 unsigned的数字始终是非负的(为正或为0)。 举例说: 如果一个char的数据是8位大小, 那么unsigned的char其对应的值域为0~255, 而同时signed的char的值域为-128~127。
long double类型指定了扩展精度的浮点。 同整数一样, 浮点数的大小跟实现(implementation)有关;float, double 以及 long double可以代表三种不同的大小。
标准头文件(standard headers)*<limits.h>和<float.h>*囊括了代表所有这些大小的符号变量(symbolic constants)以及其它机器(machine)和编译器(compiler)的特性。
参考: 《The C Programming Language》- Chapter 2.2