类型(type)

1、类型分为:
   a) object type — types that fully describe objects
   b) function type — types that describe functions
   c) uncomplete type — types that describe objects but lack information needed to determine their sizes,如void

2、在C99中加入了布尔类型_Bool,其定义为大小足够容纳0和1的类型。检查一下手头的编译器发现GCC 3.4.3支持_Bool,而Microsoft C/C++  Version 12.00.8168(VC6.0)则不支持。

3、char类型被定义为:大小足以容纳任何一个“basic execution charactor set”中的字符。如果任何一个“basic execution charactor set”中的字符存储在一个char中,它的值可以保证为“positive”;其他字符存储在一个char中,其值要根据具体的实现定义了。

4、标准定义了5个有符号整型:signed char, short int, int, long int, and long long int。当然各个不同的实现可以定义自己的扩展有符号整型。我们常说的有符号整型指的是标准的和扩展的统称。一个signed char占用的内存空间和一个"plain" char相同。一个"plain" int拥有执行环境架构建议的“自然大小”。区间在[INT_MIN, INT_MAX](in limits.h)

5、每一个标准定义的有符号整型都对应着一个unsigned int type, 它们称为标准无符号整型。它们占据的内存空间与有符号整型相同。和有符号整型一样,各个不同的实现定义了相关的扩展无符号整型。它们放在一起统称为“无符号整型”。

6、标准定义了3个“浮点实型”,分别为:float , double , long double。float的值的范围是double值范围的子集,同样double的值的范围是long double值范围的子集。

7、char type, signed int和unsigned int types, float type被统称为"basic types"。枚举是一个整型常量的集合。char type, signed int和unsigned int types和枚举统称为integer types。integer types和real floating types统称为"real types"。

8、void是个典型的uncomplete type,而且不能被completed;一个没有指定size的数组类型也是uncomplete type,但是却可以被completed。

9、到目前为止,以上提到都是"unqualified type", 每个"unqualified type"都有若干个qualified type. 通过与几个qualifiers : const、volatile、restrict的组合即可。

© 2005, bigwhite. 版权所有.

Related posts:

  1. 走马观花ANSI C标准-介绍
  2. 走马观花ANSI C标准-标识符
  3. 走马观花ANSI C标准-环境
  4. Effective Java阅读笔记-item18
  5. 关注,AOP