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

typedef关键字讲解

08c984a49b0845b1b9fbfeebd6a122e8.png

目录​​​​​​​

1. typedef 的定义

2. ui的位置

3.ui的使用



很多人都见过typedef,但是少有人知道它的作用,其实它的作用就是让关键词简单化

比如说当我们用到 unsigned int 时,每次都要打印这么长的关键词,十分耗费时间

有没有一种方法使unsigned int 变成 ui ,让我们使用 ui 时就是使用unsigned int


1. typedef 的定义

于是--typedef诞生了---将复杂的类型超简单化

比如:

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
typedef unsigned int ui;
int main()
{
	ui a = 10;
	printf("%d ", a);
	//打印10
}

用 typedef 把unsigned int 更名为 ui ,直接使用 ui 就是使用 unsigned int


2. ui的位置

为什么要把 ui 放在unsigned int 后面,我可以放在其他地方吗?

1f17361c637b46dfbfaeb5c528559143.png

答案是否定的,系统会直接报错

ui 放在那里是因为当我们正常使用时,我们就会把变量放在unsigned int 后,ui 的位置与变量原本的位置是相同的

举例:

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
typedef int* pa[3] ;//将int * [3]类型重命名为pa
typedef int aef;//将int 类型重命名为aef
typedef int (*ppa)[3];//将int(*)[3] 类型重命名为paa
typedef int (*ppaa)(int a, int b);//将int (*)(int a,int b)类型重命名为paa

我们之前讲过,除去名字就是变量名


3.ui的使用

ui在使用时,十分的简单,我们知道 ui 的在 typedef 中的位置是因为变量原本就在那个位置,那么我们在使用ui时,只需要ui 后接变量名即可

ui 变量名

例如:

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
typedef int* pa[3] ;//将int * [3]类型重命名为pa
typedef int aef;//将int 类型重命名为aef
typedef int (*ppa)[3];//将int(*)[3] 类型重命名为paa
typedef int (*ppaa)(int a, int b);//将int (*)(int a,int b)类型重命名为paa
int main()
{	
	aef a = 15;
	aef c = 18;
	aef b = 20;
	printf("%d\n", b);//打印20

	pa pb = { &a,&b,&c };
	for (int i = 0; i < 3; i++) {
		printf("%p\n", pb[i]);
		//打印a,b,c的地址
	}
	printf("\n");

	int arr[] = { 1,2,3 };
	ppa pc = &arr;
	printf("%p\n", &arr);
	printf("%p\n", pc);
	//都打印出首元素的地址位置
}

即用变量替换掉 ui 的位置

8d7d028d4ce742c9b37c433f025ae255.png


http://www.kler.cn/a/293080.html

相关文章:

  • 【数据价值化】国有企业数据资产入表及估值实践指南:挖掘数字资产新价值
  • 重卡穿越商都,ROG DAY 2024郑州站高燃来袭
  • 【JavaEE初阶 — 多线程】生产消费模型 阻塞队列
  • 简易入手《SOM神经网络》的本质与原理
  • 使用Python实现对接Hadoop集群(通过Hive)并提供API接口
  • 火车车厢重排问题,C++详解
  • List与ArrayList
  • XSS 漏洞 - 学习手册
  • 《响应式 Web 设计:纯 HTML 和 CSS 的实现技巧》
  • Spring Boot集成google Authenticator实现mfa
  • 企业数据治理之主数据--设备主数据
  • 设计模式之装饰器模式:让对象功能扩展更优雅的艺术
  • 基于智能巡检机器人的算力评估指标及其应用场景分析
  • EmguCV学习笔记 VB.Net 9.1 VideoCapture类
  • 如何通过Spring Cloud Consul增强微服务安全性和可靠性
  • C语言调用子函数时入/出栈(保护/恢复现场)全过程分析:以Cortex-M3为例
  • 【免费体验半价使用】ChatGPT的发展历程和重要节点,普通如何使用以及它能给我们带来什么?
  • 深度学习——强化学习算法介绍
  • COD论文笔记 BiRefNet
  • docker拉取redis5.0.5并建立redis集群
  • MySQL复习1
  • LAN变压器的DCR
  • 科研绘图系列:R语言折线图(linechart plots)
  • NFT Insider #146:The Sandbox 推出「体素游戏」计划;加密猫发布新 NFT 「Egg」,暴涨 37.5 倍!
  • 【ESP8266】macos 下 sdk 环境搭建
  • MATLAB进行天线阵列方向图综合