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

广州网站案例展示上海公司官网

广州网站案例展示,上海公司官网,网站管理维护怎么做,网站建设招标网在C语言中有一个typedef关键字#xff0c;其用来定义用户自定义类型。当然#xff0c;并不是真的创造了一种数据类型#xff0c;而是给已有的或者符合型的以及复杂的数据类型取一个我们自己更容易理解的别名。总之#xff0c;可以使用typedef关键字定义一个我们自己的类型名…在C语言中有一个typedef关键字其用来定义用户自定义类型。当然并不是真的创造了一种数据类型而是给已有的或者符合型的以及复杂的数据类型取一个我们自己更容易理解的别名。总之可以使用typedef关键字定义一个我们自己的类型名称。 那么究竟如何定义又有哪些情况下可已使用呢接下来我们就对它的几种用法进行说明 1基本数据类型定义 有些时候我们会使用typedef关键字对一些基本数据类型进行重新定义。例如我们使用标准整数的数据类型uint8_t和uint16_t等时其实他们的定义如下 typedef  unsigned char   uint8_t;     //无符号8位数 typedef  signed   char   int8_t;      //有符号8位数 typedef  unsigned int    uint16_t;    //无符号16位数 typedef  signed   int    int16_t;     //有符号16位数 typedef  unsigned long   uint32_t;    //无符号32位数 typedef  signed   long   int32_t;     //有符号32位数 很显然就是使用了typedef关键字给既有数据类型分配了一个别名。当我们使用uint8_t时就和使用unsigned char是一样的。如我们声明uint8_t var时和使用unsigned char var是一回事。 2指针数据类型定义 有些时候我们也会使用typedef关键字定义指针数据类型用以简化我们所使用的指针变量的声明。 例如typedef int *pointer; 这样我们就定义了一个指针类型当我们使用pointer p声明一个指针变量就和使用int *p的含义是一样的。 上面是一个指针变量类型可以演化出很多用法如定义数组对象可以更明确。有时候我们也定义指向二位数组行的指针使用typedef关键字就可以使得操作更符合我们的常规认知。 例如 typedef int (*pointer)[N]; 这里pointer等价于 int (*)[N]当我们声明pointer p就相当于声明int (*a)[N]。同样的如果我们对二维数组采用类似的定义。 例如typedef int array[M][N]; 那它的含义与指针是类似的如我们定义array a就是声明了一个M行N列的数组此时使用pa是可以的。 我们考虑到数组很多时候可以使用指针表示所以将其放在一起讨论而其它一些对象指针我们单独讨论。其实不光是上述数组和指针可以使用typedef关键字定义别名其它如一维和多位数组指针数组等都可以这样使用。 3用户对象类型定义 首先说明这里说所的用户对象是指结构体、联合体以及枚举等用户定义的数据类型。我们可以使用typedef关键字给结构体等类型定义一个别名这样我们客气在多个地方更方便的使用它。当然很多人对此有不同看法这里不讨论我们只是说有这种用法。 使用typedef关键字为结构体类型定义一个别名。 例如typedef struct{ float setpoint;               /*设定值*/ float kp;                     /*比例系数*/ float ki;                     /*积分系数*/ float kd;                     /*微分系数*/ float lasterror;              /*前一拍偏差*/ float preerror;               /*前两拍偏差*/ float deadband;               /*死区*/ float result;                 /*PID控制器计算结果*/ float output;                 /*输出值0-100%*/ float maximum;                /*输出值上限*/ float minimum;                /*输出值下限*/ float errorabsmax;            /*偏差绝对值最大值*/ float errorabsmin;            /*偏差绝对值最小值*/ float alpha;                  /*不完全微分系数*/ float deltadiff;              /*微分增量*/ float integralValue;          /*积分累计量*/ float gama;                   /*微分先行滤波系数*/ float lastPv;                 /*上一拍的过程测量值*/ float lastDeltaPv;            /*上一拍的过程测量值增量*/ }CLASSICPID; 这样我们在需要使用结构体类型定义一个对象时我们可以使用CLASSICPID vPID就可以了与使用原始定义是一样的。 同样我们也可以使用typedef关键字为枚举类型定义一个别名。 例如typedef enum { FC_REG_Write((uint8_t)0x80),         /*写寄存器的功能码*/ FC_REG_Read((uint8_t)0x81),          /*读寄存器的功能码*/ FC_VAR_Write((uint8_t)0x82),         /*写变量的功能码*/ FC_VAR_Read((uint8_t)0x83),          /*读变量的功能码*/ FC_Curve_Write((uint8_t)0x84)        /*写曲线缓冲区的功能码*/ }DwinFunctionCode; 我们需要定义枚举变量时也是使用DwinFunctionCode fc就可以了。当然我们也可已使用定义的类型声明指针变量或者直接使用typedef关键字定义指向对象的指针类型如定义结构体指针类型。 4函数类型定义 typedef关键字也常用来定义函数类型用以声明同类型的函数或者函数指针变量。这一种类型定义在函数用作形参等一回调的方式使用时非常有用具体用法可参考回调函数的使用。 使用typedef关键字定义函数类型与前面的各种定义方式类式。 例如 typedef int fType(void); 在这里fType等价于 int (void)类型函数。如果我们使用fType function声明函数function时与使用int function (void)来声明是一样的。 同样我们也可以使用fType来定义函数指针。如果我们使用fType *fPointer声明函数指针fPointer时和使用int (*fPointer) (void)来声明是一样的。 当然我们也可以使用typedef关键字直接定义函数指针类型。 例如 typedef  int (*fPointer)(void); 这样我们就可以使用fPointer来定义一个函数指针。如我们使用fPointer fp声明函数指针就如同使用int (*fp)(void)来声明。 5typedef关键字与宏定义 我们已经说明了typedef关键字的基本用法。但我们发现它的功能视乎宏定义也能实现所以我们接下来说明一下typedef关键字和#define定义的宏之间究竟有何不同。 从功能范围上讲是有区别的typedef主要是为已存在的关键字或类型及其组合取一个我们容易识别的别名。在这一点上#define也可实现但初次之外#define还有很多其它用处如果愿意你可以使用它定义任何代码这时typedef所不具备的。 执行时间也是有区别的对于#define定义的宏其在预处理阶段就会被替换。而typedef定义的类型会在编译时处理。 从作用于上来讲也是有区别的一般来说#define定义的宏没有作用于的限制只要在使用前有定义就可以了。而typedef定义的别名是有作用于的。 从实现效果来讲也是有区别的我们使用typedef定义一个指针类型然后使用该类型可以同时声明对各变量而#define却不是这样的。如typedef (int*) pType;可以使用pType a,b;这里a和b都是指向整数的指针变量。但我们同样定义#define pType int*若使用pType a,b;定义a和b则a是指向整数的指针变量而b不是。 欢迎关注
http://www.zqtcl.cn/news/498695/

相关文章:

  • 设计网站多少钱手机百度助手
  • 驾校网上约车网站开发不会做网站如何做seo
  • 企业做推广可以发哪些网站宜兴埠网站建设
  • 网站后台文章添加成功 不显示公司设计网站建设合同
  • 后端开发需要掌握哪些知识潍坊优化公司
  • 专业手机网站制作哪家好wordpress wp-polls
  • 网站建设前分析网页制作素材按钮
  • 做视频网站怎么对接云盘松江新城网站建设
  • 温州阿里巴巴网站建设企业宣传片怎么拍
  • 淮阳住房城乡建设局网站阿里巴巴做国际网站要多少钱
  • 电子商务个人网站可以备案吗短网址还原
  • 网站内容由什么组成部分组成部分电子商务网站建设主管的策划书
  • 云服务器安装win系统做网站seo三人行论坛
  • 电气网站设计机械设计软件solidworks
  • 内网网站建设所需硬件设备厦门关键词排名提升
  • 网站动态海报效果怎么做的最专业网站建
  • 学校如何建设网站北京市住房及城乡建设部网站
  • 响应式网站制作流程全国城建培训中心官网查询证书
  • 北京工程建设信息网站中国市场网
  • xml做网站源码免费网站是
  • 中国工商建设标准化协会网站织梦app网站模板
  • 怎么做好网络销售文大侠seo博客
  • wish网站应该怎么做网站建设前规划
  • 网站建设目的是什么建筑机械人才培训网官网
  • 建筑建设行业网站大型购物网站开发
  • 手机网站开发用什么设计之家网
  • 网站开发平台有哪些什么是网络开发
  • 学校网站前置审批网站做哪些比较有意思
  • 怎么给企业做网站学计算机网站建设
  • 网站关键词优化排名技巧aiyuan wordpress