C专家编程学习笔记——第三章(四):C语言声明之 typedef

        typedef是一种有趣的声明形式:它为一种类型引入新的名字,而不是为变量分配空间。typedef声明的解读可以按照上一节所介绍的方法进行。

        一般情况下,typedef用于简洁地表示指向其他东西的指针。典型的例子是signal()原型的声明。在ANSI C标准中,signal()的声明如下:
        void  (*signal (int sig, void(*func)(int) ) ) (int);
        分析:void (*signal(          ) )(int);  //signal是一个函数,它返回一个函数指针,后者所指向的函数接受一个int参数并返回void。   signal函数的第二个参数与signal具有同样的形式——void (*func)(int)。
        现在用typedef简化其声明:
        ①typedef  void(*ptr_to_func) (int);  //表示ptr_to_func是一个函数指针,该函数接受int参数,返回void
        ②ptr_to_func  signal( int, ptr_to_func );  //表示signal是一个函数,它接受两个参数,一个是int,另一个是ptr_to_func,返回值是ptr_to_func。

    注意:Ⅰ typedef可以放在声明的中间部分,但是永远不要这么做;
              Ⅱ 不要为了方便起见对结构使用typedef
              Ⅲ typedef应该用在:
                   ● 数组、结构、指针以及函数的组合类型。
                   ● 可移植类型。比如当你需要一种至少20比特的类型时,可以对它进行typedef声明。
                   ● typedef也可以为后面的强制类型转换提供一个简单的名字,如:
                                typedef  int  (*ptr_to_int_fun) (void);
                                char *p …
                                               = (ptr_to_int_fun)p;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值