typedef的作用

news/2025/1/12 22:57:50/

typedef的作用分为三种:
1.为基本数据类型定义新的类型名

typedef int myINT;//将基本的数据类型定义为新的类型名myint

2.为自定义数据类型(结构体,共用体,枚举类型)定义简洁类型名

typedef struct Point3d{float x;float y;float z;}Point3d;
//将原本类型名为struct Point3d简化为类型名Point3d
//下面对结构体类型使用typedef关键字:typedef struct Node{int data;struct Node* next;}Node;   //Node是对struct Node的重命名Node new_node;//定义结构体变量,相当于struct Node new_node;

枚举类型 ,enum 语句示例实际上并没有创建任何变量,只是定义数据类型
enum 枚举名
{
//枚举成员用逗号隔开
};

(1)以上定义的enum Day,enum Sex,enum Color都是枚举类型。
(2)花括号{}中的内容是枚举类型的可能取值,也叫枚举常量,这些枚举常量默认从0开始依次递增1,枚举常量默认从0开始,也可以在定义时赋初值。
(3)定义的枚举变量的赋值必须从枚举常量中取值,提高代码的可读性。

#include<iostream>
using namespace std;
enum day//枚举类型enum day的定义
{monday,tuesday,wensday,thursday,friday,saturady,sunday,
};
//enum Colors { red, orange, yellow = 9, green, blue };
typedef enum Colors { red, orange, yellow = 9, green, blue }color;//将原来的类型名enum Colors简化为color
int main()
{enum day day1;//定于一个enum day 类型的变量day1day1 = monday; //对day1进行赋值,赋值的内容必须为枚举类型里面的内容cout << day1 << endl;//0color col1;//采取简化的类型名colorcout << orange << endl;//1cout << green << endl;//10cout << blue << endl;//11
}
  1. typedef void(*T)(void *)
    对于typedef void(*T)(void *),我们进行一层层的剖析
    首先写成 void(*T)() 可以看出 T是一个指针,是一个指向返回值为void ,参数为空的类型的函数指针
    再加上(void *) 为 void(*T)(void *) 就变成了一个指向 返回值为void,参数为void *类型的指针
    在加上typedef ,加上后,T就不再是一个函数指针了,它代表着一种类型,这种类型可以定义一个 指向 返回值为void,参数为void *类型的指针

http://www.ppmy.cn/news/20661.html

相关文章

【GIS前沿】什么是新型基础测绘、内容、产品体系、特征?

《测绘法》指出&#xff0c;基础测绘是建立和维护全国统一的测绘基准和测绘系统&#xff0c;进行航天航空影像获取&#xff0c;建立和更新维护基础地理信息数据库&#xff0c;提供测绘地理信息应用服务等。 文章目录一、什么是新型基础测绘&#xff1f;二、新型基础测绘的特征三…

JAVA练习34

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、题目-验证回文串 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 1月29日练习…

【计算机网络】第一章 计算机网络结构

文章目录第一章 体系结构1.1 计算机网络概述1.1.1 计算机网络的概念1.1.2 计算机网络的组成1.1.3 计算机网络的功能1.1.4 计算机网络的分类*1.1.5 计算机网络的标准化工作1.1.6 计算机网络的性能指标1.2 计算机网络体系结构与参考模型1.2.1 计算机网络分层结构1.2.2 计算机网络…

【ZooKeeper】

1.ZooKeeper是什么&#xff1f; 答&#xff1a; ZooKeeper是一个开放源码的分布式协调服务&#xff0c;它是集群的管理者&#xff0c;监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终&#xff0c;将简单易用的接口和性能高效、功能稳定的系统提供给用户…

uniapp和微信小程序的区别

1、页面标签基本相同 view&#xff0c;text、scroll-view&#xff0c;input、picker、swiper等等 2、api基本相同,wx换成uni即可 原生写法&#xff1a;wx.request、wx.showModal、wx.showToast、wx.showLoading、wx.chooseImage、wx.switchTab、wx.navigateo、wx.setStorage…

k8s集群调度、亲和性、污点和容忍、pod状态、排障步骤

目录 一、调度约束 二、创建资源工作流程 三、Scheduler调度过程 1.Scheduler调度中考虑的问题 2.调度过程的步骤 3.预算策略&#xff08;predicate&#xff09;的常见算法 4.优选策略&#xff08;priorities&#xff09;的优先级 四、Pod 调度到指定Node节点 1.nodeNa…

【MyBatis】| MyBatis参数处理(核心知识)

目录 一&#xff1a;MyBatis参数处理 1. 单个简单类型参数 2. Map参数 3. 实体类参数&#xff08;PoJo类&#xff09; 4. 多参数 5. Param注解&#xff08;命名参数&#xff09; 一&#xff1a;MyBatis参数处理 接口中方法的参数专栏&#xff01; 1. 单个简单类型参数 简…

opencv去除小区域的连通区域

#include "opencv.hpp" #include "iostream" using namespace std; using namespace cv; int main() { Mat srcImage, grayImage, dstImage,imgHSVMask; int size 800; //面积因子 //srcImage imread("Road2.png"); /*imshow("原…