当前位置: 首页 > news >正文

科技公司 网站模板迷情 变性 wordpress

科技公司 网站模板,迷情 变性 wordpress,站长工具箱,做商业网站的服务费维护费文章目录 前言基础用法高阶用法typedef作用于数组typedef作用于函数指针 总结 前言 熟悉C语言的同学,应该都见过typedef,但可能对typedef的用法并不是真的了解。本文介绍几种typedef的用法,相信会有所帮助 基础用法 一般typedef用来声明一个…

文章目录

    • 前言
    • 基础用法
    • 高阶用法
      • typedef作用于数组
      • typedef作用于函数指针
    • 总结

前言

熟悉C语言的同学,应该都见过typedef,但可能对typedef的用法并不是真的了解。本文介绍几种typedef的用法,相信会有所帮助

基础用法

一般typedef用来声明一个数据类型,也就是给基本数据类型起一个别名,如下所示:

typedef uint8 mydata_type;实际使用时:
mydata_type test_data = 0x66u;

估计大部分人(包括我)的理解,会将mydata_type替换为uint8来处理

这里的typedef有两个好处,一个是别名可以帮助开发者更好的理解变量定义,另外一个是如果硬件平台更换后,方便后期批量修改源数据类型的大小(范围)。

高阶用法

typedef作用于数组

可以看下面的例子:

typedef uint8 mydata_type[6u];

此处如果是按上面说的替换,那么实际定义时不就懵逼了吗?

mydata_type[6u] test_data?

很明显,上面的示例是错误的。实际使用应该是这样的:

mydata_type test_data = {0x11u,0x22u,0x33u,0x44u,0x55u,0x66u};

mydata_type对应的变量定义的是一个uint8的数组,数组长度为6。

那应该怎么理解上面的typedef呢?

当我们不加typedef时,可以很好理解,就是定义了一个长度为6的uint8数组,程序编译时也会分配内存空间。

而加了typedef之后,相当于把之前原本要定义的数据(uint8的6位数组)声明了一个新的数据类型mydata_type,该数据类型的基本数据类型为uint8,元素个数为6个。此时并不占用空间,只有用mydata_type定义数据之后,才会分配内存。

你也可以这么理解:

对于typedef uint8 mydata_type[6u];这个语句,可以分为两步,

第一步:定义 uint8 mydata_type[6u];mydata_type是一个长度为6的uint8数组变量,此处变量名为mydata_type,数据类型为uint8[6]

第二步:将typedef作用于uint8 mydata_type[6u];

typedef作用为将变量提升为类型,则现在mydata_type变量提升为uint8[6]的数据类型,后面可以用这个数据类型定义数据。

typedef作用于函数指针

我们再来看一个常用的函数指针的类型定义

typedef  void (*pFunction)(void);

首先回顾一下函数指针函数指针的定义:其本质是一个指针变量,该指针指向这个函数。总结来说,函数指针就是指向函数的指针函数指针的星号是属于函数名的

函数指针的声明:类型说明符 (*函数名) (参数)

void (*pFunction)(void);

此处声明了一个无返回值的函数,函数名为pFunction,无参数传递的函数指针

此处只是声明,并不是定义

加上typedef之后,该声明提升为类型,pFunction该类型是一个函数指针,后面可以用该类型定义新的函数指针

typedef  void (*pFunction)(void);/* 定义一个函数指针类型,类型名为pFunction */
pFunction Jump_To_Application;/* 定义一个函数指针 */实际使用:Jump_To_Application = (pFunction) JumpAddress;/* 函数指针赋值 */......Jump_To_Application();/* 跳转到指定地址执行 */

总结

C语言博大精深,只能说学无止境

http://www.15wanjia.com/news/173637.html

相关文章:

  • 河南无限动力做网站怎么样成都优化网站源头厂家
  • 祥云平台做网站如何雄安智能网站建设电话
  • 广州云购网站建设网站的在线支付怎么做
  • 保险购买网站山东省东营市建设局网站
  • 网站建设用到什么软件asp三层架构做网站
  • 北京企业展示网站建设网站开发 保修期
  • 重庆建设网站多久时间网易企业邮箱手机登录
  • 扬中网站建设怎么样专业网页制作费用
  • 英文网站建设怎么样前端工作6年一般拿多少工资
  • 做交易网站需要用到的软件wordpress 图片外链
  • 网站建设中通知南宁旅游网站建设
  • 邢台网站设计哪家专业wordpress 301定向
  • 郑州汉狮做网站报价wordpress 报错
  • 教人如何做吃的网站网站制作过程中碰到的问题
  • 游戏网站设计模板php做网站主题
  • 做标签网站邀请码杭州市城乡建设网站
  • 免费做deal的网站网站免费正能量软件推荐
  • 昆明网站制作网页网站业务建设是什么意思
  • 最新网站制作公司哪个好wordpress 下载功能
  • 什么二手车网站做最好宜昌市夷陵区建设局网站
  • 网站建设的技术上海网站建设过程
  • 做拼货商城网站自己制作网页怎么制作的
  • c语言 做网站打开小程序
  • 广州兼职网网站建设如何自己做游戏网站
  • 如何搭建一个完整的网站网站建设中采用的技术方案
  • 做漫画在线观看网站深圳新闻最新消息今天
  • 2017商会网站建设方案公司网站工程案例怎么做
  • 网站建设费计入什么科目比较好河南省住房和城乡建设厅网站首页
  • 浅析我国门户网站建设不足做网站 蓝洋
  • 免费大气网站模板手机网站自适应屏幕