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

【c语言】typedef的基本用法 | 定义格式

创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!! 

主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ  

c语言系列专栏: c语言之路重点知识整合 

 

目录

定义格式与含义

 一、基本类型的自定义

二、指针、数组类型的自定义

三、函数类型的自定义

四、嵌套定义

总结 


定义格式与含义

模板:   typedef 现有类型名 自定义名称

typedef就是重命名!  注意是类型名,即不同类型的特征。

将现有的类型名重命名为自定义名称,并且可以通过自定义名称进行变量操作。

方便阅读与编程语义的流畅性

例如:c语言中没有布尔类型,可以通过typedef命名一个布尔类型

#include <stdio.h>
typedef int BOOLEAN;   //为现有int类型 命名一个新的类型 通常自定义类型名称为大写
int main ()
{/* 模板: typedef 现有类型名 自定义名称 */BOOLEAN sex = 1;return 0;
}

这就是将int类型重命名为BOOLEAN类型,其本质还是int类型

  

 一、基本类型的自定义

	typedef int INTEGER;int a;INTEGER b;typedef char BYTE;BYTE c;

int a与INTEGER b等价,本质都是int a。BYTE本质为char类型。

二、指针、数组类型的自定义

将int* 类型重命名为PINT。 数组类型去掉数组名改为想改的自定义名。数组指针类型同理。

	typedef int* PINT;   //int *p = z,t,x;PINT z, t, x;typedef int FIVEINT[5];FIVEINT a5 = { 1,2,3,4,5 };FIVEINT* pa5 = &a5;typedef int(*P_FIVEINT)[5];P_FIVEINT pfi = &a5;

三、函数类型的自定义

通过对函数指针类型的重命名。 使用函数指针执行函数代码。

关于函数指针的知识点:c语言函数指针详解

	double (*pmath)(double);            //函数指针变量typedef double (*PMATH)(double);    //函数指针 类型PMATH p = sqrt;PMATH ps[4] = {sqrt,ceil,floor,fabs};for (int i = 0; i < 4; i++){printf("%f\n",ps[i](2.5));}

 

四、嵌套定义

嵌套就是对命名后的名字再命名。无论进行多少次重命名,本质还是int类型。

#include <stdio.h>
/*4 嵌套定义 */
typedef int INTEGER;//新类型
typedef INTEGER* POINT_INT;//为新类型指针 创建另一个新类型
typedef POINT_INT* POINT_POINT_INT;
int main()
{INTEGER a=10;POINT_INT p=&a;POINT_POINT_INT pp=&p;printf("%d\n",a);printf("%d\n",*p);printf("%d\n",**pp);return 0;
}

总结 

typedef就是将现有的类型名重命名为自定义名称,方便阅读与编程语义的流畅性

 

大家的点赞、收藏、关注将是我更新的最大动力!欢迎留言或私信建议或问题。

大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!

相关文章:

【c语言】typedef的基本用法 | 定义格式

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…...

深度学习论文分享(二)Data-driven Feature Tracking for Event Cameras

深度学习论文分享&#xff08;二&#xff09;Data-driven Feature Tracking for Event Cameras&#xff08;CVPR2023&#xff09; 前言Abstract1. Introduction2. Related Work3. Method3.1. Feature Network3.2. Frame Attention Module3.3. Supervision 4. Experiments5. Con…...

蛇优化算法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 蛇优化算法算法流程图初始化进化操作搜索阶段&#xff08;无食物&#xff09;——全局搜索搜索阶段&#xff08;有食物&#xff09;——局部搜索战斗模式交配模式 备…...

循环神经网络(RNN)简单介绍—包括TF和PyTorch源码,并给出详细注释

文章目录 循环神经网络&#xff08;RNN&#xff09;入门教程1. 循环神经网络的原理2. 循环神经网络的应用3. 使用keras框架实现循环神经网络3.1导入对应的库及加载数据集3.2.数据预处理3.3定义RNN模型3.4训练模型3.5测试模型 4.使用PyTorch框架实现上述功能—注释详细5.结论 循…...

Struts2 快速入门

Struts2 是一个基于 MVC 设计模式的 Java Web 应用程序框架&#xff0c;它可以帮助我们更加有效地开发 Web 应用程序。Struts2 采用了前端控制器模式&#xff0c;通过核心控制器 DispatchServlet 将所有请求进行集中处理&#xff0c;然后将请求分发到指定的 Action 中&#xff…...

关于PullToRefreshView下拉刷新失效问题

一、问题原因 昨天&#xff0c;突然一个问题丢在了我的头上&#xff0c;用户反馈说某某界面下拉刷新不好使啊&#xff0c;怎么回事。二话不说直接运行项目&#xff0c;经过测试&#xff0c;发现果然不好使。一看代码提交日期好家伙2020年&#xff0c;百思不得其解&#xff0c;…...

JAVA开发中的六大原则

JAVA开发中的六大原则&#xff0c;也被称为SOLID原则&#xff0c;是软件开发中常用的一组设计原则。这些原则提供了实现高质量、易于维护和可扩展软件的基本策略。 以下是JAVA开发中的六大原则以及它们的详细说明&#xff1a; 单一职责原则&#xff08;Single Responsibility…...

Matplotlib 安装

Matplotlib 安装 本章节&#xff0c;我们使用 pip 工具来安装 Matplotlib 库&#xff0c;如果还未安装该工具&#xff0c;可以参考python 怎么使用pip进行包管理。 安装 matplotlib 库&#xff1a; pip install matplotlib 安装完成后&#xff0c;我们就可以通过 import 来…...

CF - Li Hua and Pattern

题意&#xff1a;给出了矩阵&#xff0c;里面每个位置分为蓝色或红色&#xff08;数据上用1和0体现了&#xff09;&#xff0c;给出了一个操作次数&#xff0c;每次可以改变一个坐标的颜色&#xff0c;问能否通过操作使得图像旋转180度后不变。 解&#xff1a;很容易想到&…...

重磅!阿里云云原生合作伙伴计划全新升级:加码核心权益,与伙伴共赢新未来

在今天的 2023 阿里云合作伙伴大会上&#xff0c;阿里云智能云原生应用平台运营&生态业务负责人王荣刚宣布&#xff1a; “阿里云云原生合作伙伴计划”全新升级。他表示&#xff1a; 云原生致力于帮助企业客户最大限度的减轻运维工作&#xff0c;更好的实现敏捷创新&#x…...

OSCP-Escape(gif绕过)

目录 扫描 WEB 扫描 sudo nmap 192.168.233.113 -p- -sS -sVPORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.29 ((Ubuntu)) 8080/tcp open http Apache…...

iMazing2023最新免费版iOS设备管理软件

iMazing是一款功能强大的iOS设备管理软件&#xff0c;它可以帮助用户备份和管理他们的iPhone、iPad或iPod Touch上的数据。除此之外&#xff0c;它还可以将备份数据转移到新的设备中、管理应用程序、导入和导出媒体文件等。本文将详细介绍iMazing的功能和安全性&#xff0c;并教…...

Git上传文件代码到GitHub

删除线上git:删除GitHub仓库里的文件夹_阿巴资源站的博客-CSDN博客 1. 创建空文件夹 2. cd 到本文件夹 3. git init &#xff0c;初始化&#xff0c;在本地创建一个Git仓库 4. 同时按住“ Command Shift . ”三个按键&#xff0c;即可查看当下文件夹中的隐藏文件 5. 克隆…...

JavaScript概述二(Date+正则表达式+Math+函数+面向对象)

1.Date 1.1 new一个Date对象表示当前系统时间 var nownew Date(); console.log(now);1.2 根据传入的时间格式表示时间 var date1new Date(2023-4-20 00:16:40); console.log(date1); 1.3 传入时间毫秒数&#xff0c;返回从1900年1月1日8时&#xff08;东八区&#xff09;X分X…...

一个朋友弄来的,太牛了,特别是后面内容,不看不知道,一看吓一跳,电话,热线

一个朋友弄来的&#xff0c;太牛了&#xff0c;特别是后面内容&#xff0c;不看不知道&#xff0c;一看吓一跳&#xff0c;我也收藏一下&#xff1a; 工商银行 95588 建设银行 95533 农业银行 95599 中国银行 95566 交通银行 95559 浦发银行 95528 民生银行 95568 兴业银行 955…...

VGA协议实践

文章目录 前言一、VGA接口定义与传输原理1、VGA接口定义2、传输原理3、不同分辨率对应不同参数 二、Verilog编程1、VGA显示彩色条纹2、VGA显示字符3、输出一幅彩色图像4、Quartus操作1、添加PLL核2、添加ROM核 三、全部代码四、总结五、参考资料 前言 VGA的全称是Video Graphi…...

毕业5年的同学突然告诉我,他已经是年薪30W的自动化测试工程师....

作为一名程序员&#xff0c;都会对自己未来的职业发展而焦虑。一方面是因为IT作为知识密集型的行业&#xff0c;知识体系复杂且知识更新速度非常快&#xff0c;“一日不学就会落后”。 另外一方面&#xff0c;IT又是劳动密集型的行业&#xff0c;不仅业人员多&#xff0c;而且个…...

操作系统原理 —— 进程有哪几种状态?状态之间如何切换?(七)

进程的五种状态 首先我们一起来看一下进程在哪些情况下&#xff0c;会有不同的状态表示。 创建态、就绪态 当我们刚开始运行程序的时候&#xff0c;操作系统把可执行文件加载到内存的时候&#xff0c;进程正在被创建的时候&#xff0c;它的状态是创建态&#xff0c;在这个阶…...

可算是熬出头了,测试4年,费时8个月,入职阿里,涨薪14K

前言 你的努力&#xff0c;终将成就无可替代的自己。 本科毕业后就一直从事测试的工作&#xff0c;和多数人一样&#xff0c;最开始从事点点点的工作&#xff0c;看着自己的同学一步一步往上走&#xff0c;自己还是在原地踏步&#xff0c;说实话这不是自己想要的状态。 一年半…...

5款十分小众的软件,知道的人不多但却很好用

今天推荐5款十分小众的软件&#xff0c;知道的人不多&#xff0c;但是每个都是非常非常好用的&#xff0c;有兴趣的小伙伴可以自行搜索下载。 1.视频直播录制——OBS Studio OBS Studio可以让你轻松地录制和直播你的屏幕、摄像头、游戏等内容。你可以使用OBS Studio来创建多种…...

2026 靠谱网站建设公司推荐|中大型企业 / 上市公司建站避坑与优选指南

摘要 在 AI 与 GEO&#xff08;生成式引擎优化&#xff09;主导的 2026 年&#xff0c;企业官网早已不是简单的展示窗口&#xff0c;而是品牌信任、获客转化、合规披露、全球触达的核心数字资产。选择一家靠谱的网站建设公司&#xff0c;直接决定企业数字化成果与长期商业价值。…...

装机:WIN10家庭版升级专业版

https://ubuntu.com/download/desktop/thank-you?version24.04.4&architectureamd64&ltstrue 装机&#xff1a;WIN10家庭版升级专业版Win10、Win11不重装系统情况下怎么使用一条命令实现家庭版升级为专业版或企业版&#xff1f;https://mp.weixin.qq.com/s/bIcRu6A_cl…...

电源防反接电路设计与工程实践

1. 电源防反接电路的必要性在工业自动化和嵌入式系统设计中&#xff0c;电源接反是一个常见但危害极大的问题。不同于消费电子产品使用标准化接口&#xff0c;许多工业设备需要现场接线&#xff0c;操作人员稍有不慎就可能接错电源极性。我曾参与过一个煤矿监控系统的项目&…...

OpenClaw云端体验:无需本地安装的千问3.5-9B自动化测试

OpenClaw云端体验&#xff1a;无需本地安装的千问3.5-9B自动化测试 1. 为什么选择云端体验OpenClaw&#xff1f; 上周我在测试一个自动化工作流时&#xff0c;被本地环境配置折磨得够呛——CUDA版本冲突、Python依赖地狱、端口占用问题接踵而至。正当我准备放弃时&#xff0c…...

macOS安全分析利器:OpenClaw控制SecGPT-14B检测恶意文件

macOS安全分析利器&#xff1a;OpenClaw控制SecGPT-14B检测恶意文件 1. 为什么需要本地化的恶意文件检测 作为一名长期使用macOS的安全工程师&#xff0c;我一直在寻找一种既能保护隐私又能高效检测恶意文件的方案。传统的云查杀服务虽然方便&#xff0c;但涉及到上传敏感文件…...

基于Matlab的自适应信号滤波降噪:心音信号处理之旅

基于matlab的自适应信号滤波降噪&#xff0c;利用自适应滤波器对心音信号进行降噪&#xff0c;包括了LMS算法&#xff0c;归一化LMS&#xff0c;变步长LMS和RLS算法&#xff0c;其中RLS的降噪效果最好 程序已调通&#xff0c;替换自己的数据可以直接运行在信号处理的领域中&…...

BR DI426数字输入模块

B&R DI426 数字输入模块是一款工业自动化系统用的 I/O 模块&#xff0c;主要用于采集现场开关量信号并传输至控制系统。一、基本概述型号&#xff1a;DI426类型&#xff1a;数字输入模块用途&#xff1a;采集工业现场的开关量信号&#xff0c;为控制系统提供输入数据二、主…...

Hermes邮件生成器详解:如何配置产品信息和自定义主题

Hermes邮件生成器详解&#xff1a;如何配置产品信息和自定义主题 【免费下载链接】hermes Golang package that generates clean, responsive HTML e-mails for sending transactional mail 项目地址: https://gitcode.com/gh_mirrors/he/hermes Hermes是一款强大的Go语…...

Windows平台Datax部署与初体验:从零到一的数据同步实战

1. Windows平台Datax部署全攻略 第一次在Windows上折腾Datax的经历我还记得很清楚&#xff0c;当时为了同步几个简单的数据表&#xff0c;硬是折腾了大半天。现在回头看&#xff0c;其实只要掌握几个关键步骤&#xff0c;半小时就能搞定。Datax作为阿里开源的数据同步工具&…...

避坑指南:Doris明细模型(Duplicate Key Model)的5个常见错误及优化方案

避坑指南&#xff1a;Doris明细模型(Duplicate Key Model)的5个常见错误及优化方案 在实时数据分析领域&#xff0c;Apache Doris凭借其卓越的性能和易用性赢得了众多企业的青睐。作为Doris中最基础也最常用的数据模型&#xff0c;明细模型&#xff08;Duplicate Key Model&…...