目录
数据类型的介绍
GCC 中其本数据类型的取值范围
数据类型的介绍
在高级程序设计语言中引入数据类型(Data Type)的主要目的是便于在程序中对它们按不同方式和要求进行处理。
由于不同类型的数据在内存中占用不同大小的存储单元,因此,它们所能表示的数据的取值范围各不相同(详见附录 B)。
此外,不同类型的数据的表示形式及其可以参与的运算种类也有所不同。C 语言中的数据类型分类如表 2-6 所示。
C 语言中的数据类型分类
定义整型变量时,只要不指定为无符号型(unsigned),其隐含的类型就是有符号型(signed),而 signed 通常是省略不写的。
GCC 中其本数据类型的取值范围
数据类型的取值范围不仅与操作系统相关,还和编译器相关。很多编译器都没有按照 IEEE 规定的标准的 10 个字节(80 位)支持 long double 类型,大多数编译器将它视为 double 类型。例如,在 Code::Blocks 的 GCC 编译器中,双精度型变量占 8 个字节,长双精度型变量则占 12 个字节。
此外,ANSI C 对于 int 型数据所占内存的字节数并没有明确定义,只是规定其所占内存的字节数大于 short 型但不大于 long 型所占内存的字节数。通常与程序的执行环境的字长相同。在当今大多数平台上,int 型和 long int 型整数的取值范围是相同的。
注意,long long、unsigned long long 和 long double 都是 C99 标准新加上去的,一些老的编译器(如 Visual C++ 6.0 等)不支持这些类型。虽然现在的编译器都支持 C99 标准,但很多默认编译选项仍默认为 C89 标准,需要指定按 C99 标准编译。
提示:
在下一节内容中,我们将学习如何使用 sizeof 来查看数据类型或数据的字节数。