C语言typedef的用法(转)

发布时间:2021-10-18 14:33:33

http://www.cnblogs.com/afarmer/archive/2011/05/05/2038201.html


一.基本概念剖析


int* (*a[5])(int, char*);?????? //#1?



2.有了上面的基础,我们就可以对付开头的三只纸老虎了!:) 这个时候你需要复*一下各种运算符的优先顺序和结合顺序了,顺便找本书看看就够了。?

#2:void (*b[10]) (void (*)());?



---------------------------------------------------------------?

#2:void (*b[10])(void (*)());?



3.const和volatile在类型声明中的位置。?

const int; //int是const?

?


第一次你可能不会*惯,但新事物如果是好的,我们为什么要拒绝它呢?:)const在后面有两个好处:?

const在前面的时候,就是const pchar,你会以为它就是const char* ,但是你错了,它的真实含义是char* const。?

二.Typedef声明有助于创建*台无关类型,甚至能隐藏复杂和难以理解的语法。?

下面将带到第二个陷阱:?

typedef long double REAL;?

?


用途一:?

用途二:?

而在C++中,则可以直接写:结构名 对象名,即:?

估计某人觉得经常多写一个struct太麻烦了,于是就发明了:?

POINT p1; // 这样就比原来的方式少写了一个struct,比较省事,尤其在大量使用的时候


或许,在C++中,typedef的这种用途二不是很大,但是理解了它,对掌握以前的旧代码还是有帮助的,毕竟我们在项目中有可能会遇到较早些年代遗留下来的代码。


用途三:?

用途四:?

1. 原声明:int *(*a[5])(int, char*);?

2. 原声明:void (*b[10]) (void (*)());?

3. 原声明:doube(*)() (*e)[9];?

理解复杂声明可用的“右左法则”:从变量名看起,先往右,再往左,碰到一个圆括号就调转阅读的方向;括号内分析完就跳出括号,还是按先右后左的顺序,如此循环,直到整个声明分析完。举例:?

也可以记住2个模式:?

陷阱一:?

const PSTR实际上相当于const char*吗?不是的,它实际上相当于char* const。?

陷阱二:?

”】。(注意typedef int* p[9]与typedef int(*p)[9]的区别,前者定义一个数组,此数组包含9个int*类型成员,而后者定义一个指向数组的指针,即数组指针,被指向的数组包含9个int类型成员)。?
现在是不是觉得要认识它们是易如反掌,工欲善其事,必先利其器!我们对这种表达方式熟悉之后,就可以用“typedef”来简化这种类型声明。



转载于:https://www.cnblogs.com/zhangwuji/p/5332727.html






相关资源:C语言typedef用法

相关文档

  • 中学语文教学反思优选20篇
  • 有关老虎的寓言故事
  • 七月早安语
  • 七夕节老婆祝福语
  • 超高清浅绿色护眼壁纸
  • 宣汉神龙洞
  • 最简单的简历表格制作模板
  • 手机怎么把p成漫画
  • create database 字符集设置
  • 检测cpu是否支持虚拟化和二级地址转换
  • 五年级科学单元测试题答案
  • 幼儿问题行为的纠正及实施策略
  • 古文描写美女的句子_描写古代美女的句子
  • 2017年物流常用语大全
  • 爸爸妈妈结婚那天
  • 答应我不要做舔狗是什么意思 答应我别当舔狗好吗
  • 当兵身高要求
  • 铝合金轮毂常识
  • MapReduce笔记一
  • 关于服务质量承诺书范文素材大全
  • 基于ffmpeg与nvidia-video-sdk-8.1.24视频硬解与软解多路rtsp,支持Qt的QOpenglWidget与qml接口显示
  • 国际护士节演讲稿内容
  • 专家指导:高考前100天英语最后冲刺名师支招
  • 读《厄运打不垮的信念》有感
  • Qt学习:QLineEdit的程序示例
  • 如果没有感觉 如果没有感觉,就不要给我错觉
  • 应届毕业生该如何调整心态
  • Adfree Android:移动广告杀手
  • 吃小龙虾要注意什么,不注意这些小心身体受危害
  • 被朋友伤害的经典句子_朋友伤害自己的句子
  • 猜你喜欢

    电脑版