typedef的详细理解

 

目录

 

1.typedef对整型指针进行重命名

2.typedef对数组指针进行重命名

3.typedef对函数指针进行重命名 

总结:所有重新命名的函数名必须写在*号旁边。


1.typedef对整型指针进行重命名

代码如下:

typedef int* pint;
int main()
{int* p = NULL;pint p2 = NULL;return 0;
}

2.typedef对数组指针进行重命名

代码如下:

typedef int(*p_arr)[10];
int main()
{int arr[10] = { 0 };int(*p)[10] = &arr;p_arr pc = &arr;return 0;
}

ps:重命名之后的名字必须写在“*”号的旁边,不可以像下面示列那样写。

实列如下:

typedef int(*)[10] p_arr //这样写是错误的,因为语法规定。

3.typedef对函数指针进行重命名 

 代码如下:

typedef void(*p_hanshu)(char*);
void test(char* s)
{}
int main()
{void(*pc)(char*) = test;p_hanshu pa = test;return 0;
}

总结:所有重新命名的函数名必须写在*号旁边。

 最后给大家上点难度,下面这段代码如何使用typedef使其变的好理解。

void (*signal(int, void(*)(int)))(int);

 

typedef void(*pf_t)(int);
pf_t signal(int, pf_t);

 大家好好思考,若是有问题可以私信我,我给你讲解。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724998.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python内置模块

目录 什么是模块 模块分类 通过模块创建者分类 系统内置模块 第三方模块 在线安装 离线安装 模块导入 math和random模块介绍 math模块 random模块 什么是模块 在我们编写程序时,需要导入包。例如随机数的产生,需要import random。import XXX&…

计算机基础专升本笔记-汇总笔记(三)常用文件格式

计算机基础专升本笔记-汇总笔记(三)常用文件格式 一、文本文件格式 扩展名(后缀名)文件类型docxWord2010文档dotxWord2010模版xlsxExcel2010文档xltxExcel2010模版pptxPower Point 演示文稿potxPower Point 2010模版ppsxPower P…

XGboost的整理

XGboost(extreme gradient boosting):高效实现了GBDT算法并进行了算法和工程上的许多改进。 XGboost的思路: 目标:建立k个回归树,使得树群的预测尽量接近真实值(准确率)而且有尽量大的泛化能力…

Java项目:39 springboot008房屋租赁系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 房屋租赁系统的设计基于现有的网络平台,主要有管理员、房东、用户三个角色 管理员可以在线查看系统已有的人中心、房屋类型管理、房屋信息…

在 Android 中使用 Kotlin 调用动态库

在 Android 开发中,有时候需要使用原生代码来执行一些特定的任务,比如高性能计算、访问硬件或者使用现有的 C/C 库。通常,这样的原生代码会被编译成动态库(.so 文件),然后在应用中被调用。 本篇博客将介绍…

创建java项目

文章目录 一、安装idea二、创建一个java项目1.设置名称 项目路径 安装JDK(自己选择一个位置存放JDK)2.创建完成之后 在src文件夹下创package包 再在包下创建Class类3. hellojava类创建完成设置打印语句 输出HelloJava 一、安装idea 官网地址 二、创建一…

不买后悔的阿里云服务器租用价格表_优惠活动整理_2024新版

2024阿里云服务器优惠活动政策整理,阿里云99计划ECS云服务器2核2G3M带宽99元一年、2核4G5M优惠价格199元一年,轻量应用服务器2核2G3M服务器61元一年、2核4G4M带宽165元1年,云服务器4核16G10M带宽26元1个月、149元半年,云服务器8核…

面试经典150题(105-107)

leetcode 150道题 计划花两个月时候刷完之未完成后转,今天(第2天)完成了3道(105-107)150 105.(191. 位1的个数)题目描述: 编写一个函数,输入是一个无符号整数(以二进制串的形式&am…

simplex算法的代码实现

def pivot(N, B, A, b, c, v, l, e):N对应非基本元变量下标,B对应基本元变量下标,A对应非基本元在约束方程组中的系数相反数形成的矩阵,b对应约束条件中小于等于号右边的数值集合,c对应目标函数中变量系数形成的集合,v对应当前目标函数的取值,l对应转出变量下标在B中的位置,e…

使用Http请求下载文件带来的问题

java.io.IOException: Broken pipe 当使用http请求的方式将文件作为响应内容给浏览器,这个时候如果浏览器未开启自动下载(浏览器可能会终止这个tcp连接),文件不会下载成功,但是这个时候请求已经到达服务器,如果这个时候&#xff0…

Dynamo初学常识梳理(四)——Revit图元

希望想学 Dynamo 的小伙伴坚持住,每天积累一点点知识,Dynamo 你很快就能上手的!Dynamo 并不是你想的那样难学哦! 今天要讲的是如何从 Dynamo 中获取 Revit 的图元,这些节点很常用,不需要全背下来&#xff0…

指针运算笔试题解析

题目1: int main() { int a[5] { 1, 2, 3, 4, 5 }; int* ptr (int*)(&a 1); printf("%d %d", *(a 1), *(ptr - 1)); return 0; } ptr中存放了整个数组的地址,ptr是int*类型,&a1跳到5的地址后又被强制类…

Freesia Spring配置文件与其他文件

common-api模块【application.yml文件】 project:version: 来自顶级pom.xml的properties配置 --- spring:profiles:# 根据当前活跃环境指定对应的 application文件active: profiles.active --- spring:datasource:driver-class-name: com.p6spy.engine.spy.P6SpyDriverurl: jd…

算法DFS 复习

思路:for 代表的是每一位的纵向,数字变化,dfs 代表的是横向的,位置变化。vis 来做到每个枚举的数不重复,并且要在搜索前记录,搜索后还原。模拟该样例 dfs3 的时候是输出,dfs0,1&…

『大模型笔记』Ollama ModelFile(模型文件)

Ollama ModelFile(模型文件) 文章目录 一. Ollama 模型文件1.1. 格式1.2. 示例1.2.1. 基本`Modelfile`1.2.1. `模型文件`位于 [ollama.com/library](https://ollama.com/library)1.3. 说明1.3.1. From(必填)1.3.1.1. 从 llama2 构建1.3.1.2. 从 `bin` 文件构建1.3.2. PARAMETER…

【DAY05 软考中级备考笔记】线性表,栈和队列,串数组矩阵和广义表

线性表,栈和队列,串数组矩阵和广义表 2月28日 – 天气:阴转晴 时隔好几天没有学习了,今天补上。明天发工资,开心😄 1. 线性表 1.1 线性表的结构 首先线性表的结构分为物理结构和逻辑结构 物理结构按照实…

【LabVIEW FPGA】CIC滤波器

一、CIC滤波器应用概述 在通信数字信号上下变频时,经常会用到对数字信号的升采样和降采样,即通过CIC数字速率器实现变采样率。 二、滤波器IP 首先设置滤波器基本参数(filter specification) 滤波器类型(Filter Type…

uipath调用js代码

1,调用js代码,不带参数,没有返回值 为了去掉按钮的disabled属性 function(){ document.getElementsByClassName(submitBtn)[0].removeAttribute(disabled); } 2,调用js代码,带参数,没有返回值 输入参数&a…

使用Go语言编写API接口的技术

在本篇技术性博客中,我们将讨论如何使用Go语言编写一个简单的API接口。我们将使用net/http包来处理HTTP请求和响应,并且通过JSON来传递数据。 步骤一:定义API响应结构体 首先,我们需要定义一个结构体来表示API的响应。在我们的示…

【conda】实现conda环境迁移的4种方式

文章目录 方案1: 使用conda pack制作压缩包并在目标环境解压使用方案2: 使用package列表文件重新创建conda环境方案3: scp将环境文件夹拷贝到目标主机上方案4: 通过--clone先克隆一个环境再conda pack打包迁移 方案1: 使用conda pack制作压缩包并在目标环境解压使用 适合离线环…