typedef关键字讲解

目录:

1. typedef关键字

2. ui的位置

3.ui的使用


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

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

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


1. typedef 的定义

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

比如:

cpp 复制代码
#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 后面,我可以放在其他地方吗?

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

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

举例:

cpp 复制代码
#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 后接变量名即可

cpp 复制代码
ui 变量名

例如:

cpp 复制代码
#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 的位置

相关推荐
Logintern091 小时前
[Matlab] 遗传算法求解TSP入门
开发语言·matlab
苏子寒1 小时前
Nano-VLLM全代码解析笔记(6)-embed_head和linear
pytorch·笔记·python·机器学习·ai·nlp·vllm
练习时长两年半的RL练习生2 小时前
与AI对话后对 Actor-Critic 中 TD Target 的 a‘ 来源总结
开发语言·人工智能·php
青少儿编程课堂2 小时前
用图形化编程做一个“少年探险闯关”小游戏:方向键控制、碰撞检测与多关卡串起完整项目
c++·python·算法·bfs·信息学竞赛
雨田言炎2 小时前
STM32专题之内部FLASH详解
笔记·stm32·单片机
liulilittle2 小时前
长上下文的成本结构与「甜点区间」——从推理引擎的物理约束看 200K/256K/400K
c++·人工智能·ai·llm·注意力·qkv
十五年专注C++开发2 小时前
100w条数据丝滑滚动!Qt Model/View 架构实战(二)
开发语言·c++·qt
xiaoxiangsiyan3 小时前
全网IPv6规模化改造实战指南
运维·网络·笔记·云原生·自动化
萧瑟余晖3 小时前
Java深入解析篇三十九之集成测试
java·开发语言·集成测试
skr爱码士3 小时前
06_Qt 常用数据类型与容器:QString、QList、QVector、QMap 的性能与实现分析
开发语言·c++·qt