A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 魅影穿眸 中级黑马   /  2014-4-19 21:06  /  915 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 魅影穿眸 于 2014-4-27 22:50 编辑

大侠们能不能在给知道知道,说的详细点

1 个回复

倒序浏览

typedef
typedef定义的一般形式为:

typedef 原类型名 新类型名

其中原类型名中含有定义部分,新类型名一般用大写表示,以便于区别。

有时也可用宏定义来代替typedef的功能,但是宏定义是由预处理完成的,而typedef则是在编译时完成的,后者更为灵活方便。

1.枚举的定义

enum 枚举名{ 枚举值表 };
在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。

例如:

该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。


C语言不仅提供了丰富的数据类型,而且还允许由用户自己定义类型说明符,也就是说允许由用户为数据类型取“别名”。类型定义符typedef即可用来完成此功能。例如,有整型量a,b,其说明如下:

int a,b;
其中int是整型变量的类型说明符。int的完整写法为integer,为了增加程序的可读性,可把整型说明符用typedef定义为:

typedef int INTEGER
这以后就可用INTEGER来代替int作整型变量的类型说明了。
用typedef定义数组、指针、结构等类型将带来很大的方便,不仅使程序书写简单而且使意义更为明确,因而增强了可读性。


2.枚举变量的说明

如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。

枚举类型在使用中有以下规定:

1.枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。

2.枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。
3.只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。
4.如一定要把数值赋予枚举变量,则必须用强制类型转换。

定义结构体类型变量:
    结构体类型名 变量名
       如果已经声明好了结构体,比如上面的struct jh,那么如果要定义变量a,写作:
    struct jh a;
        那么变量a的类型为"struct jh",还有两种写法:
    (1)在声明类型的同时定义变量.
    struct jh{
      int a[10];
      char b;
      float c;
    }a;
    (2)直接定义结构体类型变量.方法为声明类型的同时定义变量,并且不写结构体名jh,这种方法用于只定义1次变量,而且每用这种方法定义1个变量,虽然都为无名结构体类型,但不属于同一类型.

用结构体变量和指向结构体的指针作函数参数
    (1)用结构体变量的成员作参数.例如w.a或w[1].a作参数(注意实参和形参的类型要保持一致).
    (2)用结构体变量作实参.不建议使用,略.
    (3)用指向结构体变量(或数组)的指针作实参,将结构体变量(或数组)的地址传给形参.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马