C语言-typedef关键字

news2025/1/11 0:43:34

一.typedef 关键字

   typedef是在C语言允许为一个数据类型起一个新的别名。它本身是一种存储类的关键字,与auto extern,mutable、static、register 等关键字不能出现在同一个表达式中。

 二、typedef用法

示例:

对于数据类型使用例如: 

 

对于指针的使用例如 

 

 

 

对于结构体的使用:

typedef struct NUM
{
     int a;
     int b;
}DATA,*PTRDATA;
   DATA data;           //定义结构体变量
 
   PTRDATA pdata;   //定义结构体指针
#include <stdio.h>
 
typedef struct NUM
{
     int a;
     int b;
}DATA,*PTRDATA;
 
int main()
{
       DATA data;           //定义结构体变量
       PTRDATA pdata;   //定义结构体指针
       pdata=&data;      //结构体指针指向结构体变量      
 
       data.a=100;
       data.b=500;
 
       printf("a=%d\nb=%d\n",data.a,data.b);
       printf("a=%d\nb=%d\n",pdata->a,pdata->b);
       return 0;
}

以下两种写法等同 

 

3.Typedef与define

       在单片机和操作系统中 typedef 会经常用到,它可以为某一个类型自定义名称。和#define比较类似。但是又有不同的地方。

   typedef 创建的符号只能用于数据类型,不能用于值。而#define 创建的符号可以用于值。
   typedef 是由编译器来解释,而不是预处理器。
   typedef 使用起来更加灵活。

Typedef是起别名,define是替换。

#include<stdio.h>

#define SINT int *

typedef int* PINT;

int main()
{
	SINT a, b;
	//int *a,b;
	PINT p, s;
	//int *a,*b;
}

 示例二:

typedef int *PTR;
 
PTR a,b;

此时a,b都是指针变量。

#define PTR int*
 
PTR a,b;

此时等同于

int *a,b;

 只有a为指针变量,而b为整型变量。

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

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

相关文章

【VictoriaMetrics】VictoriaMetrics单机版批量和单条数据写入(influx格式)

VictoriaMetrics单机版支持以influx格式的数据写入,写入支持单条数据写入以及多条数据写入,下面操作演示下如何使用 1、首先需要启动VictoriaMetrics单机版服务 启动VictoriaMetrics单机版服务执行的命令如下 nohup /opt/victoriaMetrics/victoria-metrics-prod -httpListe…

【剑指offer专项突破版】整数篇(经典面试题)——C

文章目录 前言一. 整数除法题目分析1.一般思路①代码 2.优化思路②优化后的代码 拓展:用位运算实现整数的加法③代码 二. 二进制加法题目分析思路分析①代码 三. 前n个数字中1的个数题目描述思路分析①方法1——遍历②方法2——i&(i-1)③方法3——i&(i-1)的优化④方法…

数字赋农:数字农业新时代,致富之路宽又阔!

不管在什么年代&#xff0c;粮食永远是国之根本、民之命脉&#xff0c;而来粮食安全更是“国之大者”&#xff0c;更是曾在大会中明确提出过&#xff0c;要全方位夯实粮食安全根基&#xff0c;牢牢守住十八亿耕地红线&#xff0c;确保中国人的饭碗牢牢端在自己手中。 我们需要深…

快速入门SpringMVC 学习

目录 SpringMVC 定义 MVC定义 创建SpringMVC项目 SpringMVC掌握功能 一、连接功能 RequestMapping(请求映射) GetMapping 和 PostMapping 二、获取参数功能 传递单个参数/多个参数 注意点&#xff1a; RequestParam(前后端参数映射) 前后端参数映射 RequestParam特…

骆驼祥子思维导图怎么画?高效工具分享

骆驼祥子是一部中国现代文学经典作品&#xff0c;由老舍所著。在阅读这本书时&#xff0c;我们可以使用思维导图来梳理故事情节和人物关系&#xff0c;从而更好地理解这本书的主题和内涵。 我们可以在线制作思维导图&#xff0c;这个网站还内置了流程图和Markdown功能。 站点内…

前瞻洞察|Prompt Learning(提示学习)——新的低资源场景克星

近年来&#xff0c;预训练语言模型已然成为自然语言处理&#xff08;NLP&#xff09;领域中备受瞩目的技术之一。预训练模型可以在大规模文本语料上进行自监督学习&#xff0c;从而获得丰富的语言学知识&#xff0c;并通过在下游任务上进行微调&#xff0c;实现出色的性能。Pro…

markdown导出成html,并将图片转换成base64

文章目录 方案一&#xff0c;使用typora第一步&#xff0c;编写python脚本第二步&#xff0c;设置导出后运行py脚本&#xff0c;设置如下 方式二&#xff0c;使用vscode插件&#xff1a;Markdown Preview Enhanced使用方法在markdown头部添加 预览界面右键&#xff0c;选择导出…

JAVA基础知识总结系列(2):JAVA语法基础

1&#xff0c;关键字&#xff1a;其实就是某种语言赋予了特殊含义的单词。 保留字&#xff1a;其实就是还没有赋予特殊含义&#xff0c;但是准备日后要使用过的单词。 2&#xff0c;标示符&#xff1a;Java中的包、类、方法、参数和变量的名字&#xff0c;可由任意顺序的大小写…

用低代码打造高效餐厅管理系统

当代社会&#xff0c;餐饮业有着非常广阔的市场前景&#xff0c;也承担着相应的管理力。随着人工智能、物联网等新技术的快速发展&#xff0c;低代码能化为了许多餐饮门店管理的新革命。在这篇文章中&#xff0c;我们将会探讨低代码智能化带来的餐门店管理新使命。 一、低代码…

leetcode 2101. Detonate the Maximum Bombs(引发最多的bomb)

bombs是一个二维数组&#xff0c;每个bombs[i] [x, y, r] 代表一个bomb&#xff0c;(x,y)是二维坐标&#xff0c;r是半径。 点燃一个bomb时&#xff0c;以(x,y)为圆心&#xff0c;半径为r的圆范围内的bomb都会点燃&#xff0c;引起连锁反映。 选择一个bomb点燃&#xff0c;使得…

品牌出海3大营销新趋势

过去一年&#xff0c;跨境行业复杂多变&#xff0c;在成本剧增、利润承压之下&#xff0c;出海卖家们面临着诸多考验&#xff0c;但不管如何&#xff0c;可以肯定的是&#xff0c;未来跨境电商行业势必将迎来一波新增长。反之&#xff0c;随着行业竞争加剧&#xff0c;对卖家的…

MongoDB 复制集的基本概念

官方概念&#xff1a;副本集是一组 MongoDB 的进程去维持同样的一份数据集&#xff0c;通过 MongoDB 的复制协议保证主备之间的数据一致性。 如上图所示&#xff0c;MongoDB 有两种部署方式&#xff0c;一个是 Standalone 部署模式&#xff1b;另外一个是副本集&#xff0c;有不…

AppScan入门(二) — Web漏洞扫描工具AppScan的使用

Web漏洞扫描工具AppScan的安装(win10系统亲测ok)&#xff0c;安装完后&#xff0c;进行实操&#xff0c;常用的基本操作&#xff0c;防止自己后期使用忘记&#xff0c;也给用到的朋友一个参考 1、打开AppScan,新建一个项目 &#xff08;文件—>新建—>扫描web应用程序&…

OpenWrt 软路由解析公网IPV6域名访问家庭NAS的教程

OpenWrt软路由放行IPV6公网访问家庭NAS黑群晖设备的教程&#xff0c;威联通/黑群晖设置阿里云动态解析进行外网 IPV6 域名访问家中 NAS&#xff0c;设置OpenWrt软路由&#xff0c;通过ipv6外网访问家中电脑nas等设备系列教程&#xff0c;学长今天啥也没有干&#xff0c;网站也没…

android使用fat-aar打包,本地aar和第三方依赖库以及遇到的问题

android使用fat-aar打包&#xff0c;本地aar和第三方依赖库以及遇到的问题 为什么会用到fat-aar如何使用打出来的aarlib中存在多个架构&#xff0c;例如x86\x86_64我在打包okhttp和retrofit的时候遇到的问题 你遇到其他问题怎么处理&#xff1f; 为什么会用到fat-aar 需要把有…

工业级高性能3D模型渲染引擎,专注于3D Web轻量化!

一、技术概览 HOOPS Communicator 是一个SDK&#xff0c;用于在Web浏览器中开发3D工程应用程序&#xff0c;重点在于&#xff1a; 完全访问工程数据使用方便快速发展高性能可视化快速模型流灵活使用和部署 点击此处获取>>>3D模型轻量化及格式转换解决方案 它的主要…

提高国外 VPS 云主机性能(Linux系统)的 4 个步骤

​  随着外贸业务的兴起及不断发展&#xff0c;越来越多的企业和个人开始使用国外 VPS 云主机来部署自己的应用程序和网站。其中&#xff0c; Linux 系统的国外VPS 云主机创造了众多的可能性和功能&#xff0c;但仍有一些方法可以进一步提高 Linux VPS 的整体性能。下面我们将…

YOLOv5 白皮书-第Y5周:yolo.py文件解读

目录 一、前言二、导入需要的包和基本配置三、 parse_model函数四、Detect类五、BaseModel类六、调整模型1. common.py中生成C22. yolo.py的parse_model中增加c23. yolov5s.yaml中增加c2 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客 &#x1f366;…

07 Redis的缓存过期淘汰策略

常见面试题 生产上你们你们的redis内存设置多少?如何配置、修改redis的内存大小如果内存满了你怎么办redis清理内存的方式&#xff1f;定期删除和惰性删除了解过吗redis缓存淘汰策略redis的LRU了解过吗 Redis内存满了怎么办 redis默认内存多少&#xff1f;在哪里查看?如何…

阿里工作8年,肝到P8就剩这份学习笔记了,已助朋友拿到10个Offer

在阿里工作了8年&#xff0c;工作压力大&#xff0c;节奏快&#xff0c;但是从技术上确实得到了成长&#xff0c;尤其是当你维护与大促相关的系统的时候&#xff0c;熬到P7也费了不少心思&#xff0c;小编也是个爱学习的人&#xff0c;把这几年的工作经验整理成了一份完整的笔记…