typedef用法详解
来源:互联网 发布:淘宝上耳机单元哪来的 编辑:程序博客网 时间:2024/05/22 10:36
typedef用法详解
typedef的一般形式为:
typedef 类型 定义名;
在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。
其实,在C语言中声明变量的时候,有个存储类型指示符(storage-
static const int i;
const static int i;
int const static i;
const int static i;
根据C语言规范,在进行句法分析的时候,typedef和存储类型指示符是等价的!所以,我们把上述使用static的地方替换为typedef:
typedef const int i;
const typedef int i;
int const typedef i;
const int typedef i;
上述代码的语义是:将i定义为一个类型名,其等价的类型为const int。以后如果我们有i a代码,就等价于const int a。对于有指针的地方也是一样的,比如:
int const typedef *t;那么代码t p。就相当于int const *p。
另外,typedef不能和static等存储类型指示符同时使用,因为每个变量只能有一种存储类型,所以代码:typedef static int i;是非法的。
使用typedef简化复杂的变量声明
1)、定义一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数,并返回一个整型?
第一种方法:int (*a[10])(int);
第二种方法:typedef int (*pfunc)(int);
pfunc a[10];
2)、定义一个有10个指针的数组,该指针指向一个函数,该函数有一个函数指针(不带参数,返回值为空)参数,并返回空。
第一种方法:void (*a[10])(void (*)(void));
第二种方法:typedef void (*pfuncParam)(void);
typedef void (*pfunc)(pfuncParam);
pfunc a[10];
3)、一个指向有10个函数指针(不带参数,返回值为double)数组的指针
第一种方法:double (*)(void) (*p)[10];
第二种方法:typedef double (*pfunc)(void);
typedef pfunc (*pfuncParam)[10];
pfuncParam p;
总结:
typedef有两种用法:
一、一般形式,定义已有类型的别名
typedef 类型 定义名;
二、创建一个新的类型
typedef 返回值类型 新类型名(参数列表);
- typedef struct 用法详解
- typedef用法详解
- typedef用法详解
- typedef struct用法详解
- typedef用法详解
- typedef struct 用法详解
- [转载]Typedef 用法详解
- typedef struct 用法详解
- typedef struct 用法详解
- typedef用法详解
- typedef struct 用法详解
- typedef struct 用法详解
- typedef用法详解
- typedef用法详解
- typedef用法详解
- typedef struct 用法详解
- 详解typedef用法
- typedef用法详解
- 编程入门:浅谈C语言的可变参数
- 博拉博客营销——To Be Or Not To Be?
- 爬虫原理
- 建立ARM平台上的交叉调试器gdb和gdbserver
- 为VC++应用程序对话框添加透明位图
- typedef用法详解
- linux下u盘使用(转贴)
- "卡秀"开发总结(NOKIA平台J2ME APP)
- FreeBSD的管理小技巧
- VC插件集
- 多个人同时访问页面出现的问题
- STL中map的使用
- 黑客实战技术
- 这是什么?我的书库啦!