python typedef用法_C typedef
typedef 还有一个作用,就是为复杂的声明定义一个新的简单的别名。用在回调函数中特别好用:
1. 原声明:int *(*a[5])(int, char*);
在这里,变量名为 a,直接用一个新别名 pFun 替换 a 就可以了:
typedef int *(*pFun)(int, char*);
于是,原声明的最简化版:
pFun a[5];
2. 原声明:void (*b[10]) (void (*)());
这里,变量名为 b,先替换右边部分括号里的,pFunParam 为别名一:
typedef void (*pFunParam)();
再替换左边的变量 b,pFunx 为别名二:
typedef void (*pFunx)(pFunParam);
于是,原声明的最简化版:
pFunx b[10];
其实,可以这样理解:
typedef int *(*pFun)(int, char*);
由 typedef 定义的函数 pFun,为一个新的类型,所以这个新的类型可以像 int 一样定义变量,于是,pFun a[5]; 就定义了 int *(*a[5])(int, char*);
所以我们可以用来定义回调函数,特别好用。
另外,也要注意,typedef 在语法上是一个存储类的关键字(如 auto、extern、mutable、static、register 等一样),虽然它并不真正影响对象的存储特性,如:
typedef static int INT2; // 不可行
编译将失败,会提示“指定了一个以上的存储类”。
CoolLoser
CoolLoser
103***3350@qq.com2年前 (2018-07-24)
python typedef用法_C typedef相关推荐
- python foreach用法_C# 中 foreach 遍历的用法
foreach循环用于列举出集合中所有的元素,foreach语句中的表达式由关键字in隔开的两个项组成.in右边的项是集合名,in左边的项是变量名,用来存放该集合中的每个元素. 该循环的运行过程如下: ...
- typedef用法小结
Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法.不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮 ...
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
关于C++中函数指针的使用(包含对typedef用法的讨论) (一)简单的函数指针的应用. //形式1:返回类型(*函数名)(参数表) char (*pFun)(int); char glFun(in ...
- typedef用法(1)
Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法.不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮 ...
- typedef 用法详解
第一部分 基本概念 1.基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等). 在编程 ...
- C语言中typedf函数的用法,C语言中typedef用法详解
在C语言中,经常有如下的用法: typedef struct tag{ ...} MyType, *MyPtr; 一旦通过如上定以后,就可以用MyType来定义struct tag结构了. 以 ...
- c语言typedef的用法,C语言中typedef用法总结,看完就能像编程老手一样熟练运用...
请看下文 C语言中typedef关键字应用比较常见,许多C语言初学者对它的用法不甚了解.事实上,我们可以用typedef来定义自己习惯使用的数据类型名称,可以替代自己所熟悉的基本类型.数组类型.指针类 ...
- C和C++中struct的typedef用法建议
C和C++中struct的typedef用法建议 参考文章(建议先读) 根据参考的文章,总结一下: 情况1 C语言中: typedef struct{ ···: }aaa; 则aaa是struct类的 ...
- c语言typedef(c语言typedef和define)
什么是C语言 C語言是1972年左右由DennisRitchie一??人在?????室(?稱AT&T)設?開發出?淼碾?腦程式語言.他??r與KenThompson?扇斯餐??UNIX作?I ...
最新文章
- 《人工智能爱好者俱乐部》元旦福利预告
- Chrome用户请尽快更新:谷歌发现两个严重的零日漏洞
- CSS美化网页元素大全
- 每日一笑 | 周一,如何才能保持清醒?
- 短信宝 php使用,[php] 使用 短信宝 发送短信(thinkphp)
- 酷睿i7cpu适合的linux,CPU性能篇 - Core i7-4770K Linux之旅:有喜有忧_Linux新闻_Linux公社-Linux系统门户网站...
- ORACLE PL/SQL 实例精解之第二章 通用编程语言基础
- 量化投资与Python
- oracle 审计变换表空间_Oracle审计日志和审计策略数据表迁移到新表空间
- 指针数组 | 数组指针
- html页面布局实验原理,Html设计实验报告.doc
- 【黑金原创教程】【TimeQuest】【第五章】网表质量与外部模型
- 磨金石教育摄影技能干货分享||如何将平凡的窗户拍出美感
- 数据库查询近一年来的数据(近三个月、近六个月同理)
- win10内存占用过高解决方案
- Ubuntu16.04系统+GTX1050TI显卡的tensorflow1.6(GPU版)安装-详细图文
- C#基于开源地图GMap的开发示例
- ios tableView那些事 (九) tableview的删除
- go work 工作区
- 怀旧服服务器维护后刷稀有怪么,这6件魔兽世界怀旧服值得刷但掉率低的装备,你刷了多少次刷到的...