请问C语言中定义数据类型的有哪些词啊,应该在什么情况下用到?

如题所述

当需要为变量、常量以及函数定义并分配存储空间时,要定义数据类型。
C/C++ 数据类型C语言包含5个基本数据类型: void, integer, float, double, 和 char.
类型 描述
void 空类型
int 整型
float 浮点类型
double 双精度浮点类型
char 字符类型

C++ 定义了另外两个基本数据类型: bool 和 wchar_t.
类型 描述
bool 布尔类型, 值为true 或 false
wchar_t 宽字符类型

类型修饰符
一些基本数据类型能够被 signed, unsigned, short, 和 long 修饰. 当类型修饰符单独使用的时候, 默认的类型是 int. 下表是所有可能出现的数据类型:

bool
char
unsigned char
signed char
int
unsigned int
signed int
short int
unsigned short int
signed short int
long int
signed long int
unsigned long int
float
double
long double
wchar_t

类型大小和表示范围
基本数据类型的大小以及能够表示的数据范围是与编译器和硬件平台有关的. "cfloat" (或者 "float.h") 头文件往往定义了基本数据类型能够表示的数据的最大值和最小值. 你也可以使用 sizeof 来获得类型的大小(字节数) . 然而, 很多平台使用了一些数据类型的标准大小,如. int 和 float 通常占用 32位, char 占用 8位, double 通常占用64位. bools 通常以 8位 来实现.追问

我想知道double,long double,float,signed int,在什么情况会用,简单地有什么例子。

追答

double和float用于定义带小数部分的数据类型。
double和long double都是ANSI C标准的浮点数。但ANSI C并未规定long double的确切精度。所以对于不同平台可能有不同的实现。有的是8字节,有的是10字节,有的是12字节或更多。一般来说long double的精度要高于double, 至少相等,就像int和long int一样。但同一平台也可能不一样,比如MS自己的C/C++/VC++就不一样。

int就是signed int。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-16
typedef A B;将一个已知的类型A定义为类型B
#define A B可以在预处理阶段将源代码中所有出现A的地方替换为A
前两个在某些意义上也是自定义类型,但实际上它们不生成新的数据类型。定义新的类型的关键字有enum,struct,union

enum定义一个枚举类型。 枚举型变量只能取定义枚举型时所规定的“标识符”。虽然枚举型本质上是整型,枚举型的“标识符”也只是符号常量,但是,采用枚举型可以极大地提高程序的可读性,同时由于限制了“整型”的取值范围,可以避免程序中用错误的数据给变量赋值,防止出现逻辑错误。
struct定义一个结构体。结构型是最典型的自定义数据类型,与之相关的存储单元由多个类型不同的基本类型存储单元组合而成。当定义一个结构型变量时,就会申请一个这样的存储单元,其中属于它的多个基本类型存储单元都有一个内部的名称,整个存储单元由结构型变量名代表。数组变量虽然也包含了多个存储单元,但实际上通常只使用它表现为基本类型的数组元素。使用结构型变量时多数情况下也是使用其中的某个基本类型存储单元,用结构体成员操作符(.)把结构型变量名和内部的名称结合起来就是相关存储单元的变量名。这样看来,结构型与数组类似,数组变量是多个同类型变量的代表,它包含了多个数组元素,而结构型变量是多个不同类型变量的代表,它包含了多个成员变量。
union定义一个联合体。联合型变量也包含了多个成员变量,但它们共享存储单元,这就意味着在某个时刻只有一个成员变量是真正可以使用的。有时可以利用一个联合型变量代替多个普通变量以减少程序对存储空间的需求。
第2个回答  2013-04-16
有整型int,字符型char,浮点型float,双精度浮点型double等常用的基本数据类型,根据程序被处理对象不同使用不同的数据类型。
相似回答