赞
踩
为一种类型引入新名字,但是不分配空间,也不创建一个变量
typedef一般用于简洁地表示指向其他东西的指针,常用在数组、结构、指针以及函数的组合类型。
示例如下:
#include <stdio.h> /* 本测试用例用于说明typedef的优势 功能:选择加减操作符,执行对面操作 说明:首先根据操作符选择对应的函数指针,通过typedef定义的函数指针,带上参数,得到二目运算结果 */ typedef int (*PFun)(int, int); //函数指针,形参为两个int,返回值为int int add(int a, int b) { return a + b; } int min(int a, int b) { return a - b; } PFun cal_func(char ops) //返回值为函数指针 { switch (ops) { case '+': return add; break; case '-': return min; break; } return NULL; } int main_typedef(int a,int b,char ops) { PFun pFun = cal_func(ops); int r = pFun(a, b); printf("result :%d %c %d = %d \n", a, ops, b, r); return 0; }
比较合规的用法:
struct TAG
{
int a;
}
struct TAG veg;
如果使用typedef,可以省略声明过程中的struct
,但是这个关键字具有提示作用,没有必要省略
typedef struct TAG //TAG可以省略
{
int a;
}TYPE;
TYPE veg;
typedef static int INT_STATIC; //错误示例
原因是不能声明多个存储类关键字,由于 typedef 已经占据了存储类关键字的位置,因此,在 typedef 声明中就不能够再使用 static 或任何其他存储类关键字了。
《C专家编程》P67
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。