typedef的用法

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

typedef只有一种用法,那就是:

1,代替各种类型或某类(结构体)成员。

比如下列代码:

#include <iostream>
#include <string>
int main() {
    typedef int i;
    i e=3;
    int f=3;
    std::string t_or_f=(e==f)?"true":"false";
    printf("%s",t_or_f.c_str());
}

输出:

true

这是因为使用了typedef关键词使i的作用变成了int。所以e是整形变量。但如果你想创建一个名为i的变量,那你还是死心吧。

我们再看看第二个例子:

#include<iostream>
struct student{
	std::string name;
	int ID;
	float score;
};
typedef struct student stu;
stu a={"wang",201960522,91.5};
struct student b={"li",202050334,80.75};
int main(){
	stu* p = &a;
	std::cout<<p->name<<" "<<p->ID<<" "<<p->score<<std::endl;
	p = &b;
	std::cout<<p->name<<" "<<p->ID<<" "<<p->score;
}

输出:

这段代码中,我们用student创建了两个成员a和b,一个用了typedef关键词代替的创建方式,一个用的是原方法。之后用指针p继承a和b并打印。

2,可以运用指针函数

typedef运用指针函数,比如:

#include <iostream>
typedef int(*funcPtr)(int, int);
int add(int a, int b){
    return a+b;
}
int minus(int a, int b){
    return a-b;
}
int multiply(int a, int b{
    return a*b;
}
int dividing(int a, int b){
    if (b == 0) {
        std::cout<<"除数不能为 0!"<< std::endl;
        return 0;
    }
    return (float)a/b*1.0;
}
int main() {
    int num1,num2;
    char _operator;
    bool yes = true;
    funcPtr f = NULL;
    while (yes) {
    	std::cout<<">";
        std::cin>>num1>>_operator>>num2;
        switch (_operator) {
            case '+':f = add;break;
            case '-':f = minus;break;
            case '*':f = multiply;break;
            case '/':f = dividing;break;
            default:std::cout << "无效运算符!" << std::endl;f=0;break;
        }
            std::cout<<f(num1, num2)<<std::endl;
    }
}

这段代码使用typedef进行指针函数,然后创建了add,minus等函数,之后初始变量,然后输入运算符和数字,根据运算符就改变指针,如果不是+,-,*和/。就显示“无效运算符”,最后根据指针运行函数。然后循环。

3,例子环节

格式1:

typedef 被代替 代替

格式2:

typedef 函数名(函数定义)

如果有什么问题的话,请指出。预告一下,下期我会更新《typename的用法》

SV学习总结1--typedef enum与enum等用法typedef常见用法总结 直接声明枚举变量时,变量名不具备类型标识功能,这是两段代码本质区别。typedef 的核心价值是创建类型别名,使代码更简洁;→ 后续尝试用变量名声明新变量会报错。将匿名枚举类型定义为新类型名。声明变量(本质是类型别名)类型名 ordinal_e。变量 position。第一段代码(正确✅)第二段代码(错误❌) 阅读详情

相关推荐

typedef用法总结

这些高级用法展示了typedef的强大和灵活性,能够使代码更加模块化、可维护并增强类型安全。你可以通过typedef为复杂的类型、结构体、函数指针、数组和指针定义别名,简化代码。提供类型安全,避免类型错误。与#define、条件编译等结合使用,实现更复杂的类型定义。

dlz0836的博客 738

C++ 中typedef用法总结

在总结中,比较简单的我只是做了简略的总结,对我来说比较难理解的做了重点的解析。用于为基本数据类型定义一个新的名字,使代码更具可读性或便于修改。示例:这里将int类型定义为Integer,之后就可以使用Integer来声明变量,就像使用int一样。这种方式在代码中如果需要频繁使用int类型,并且希望提高代码可读性(例如,Integer可能暗示这个int变量在特定的业务逻辑中有特殊含义)或者在需要修改类型时(比如将int改为long),只需要修改typedef语句即可。在深入typedef

small__dogs的博客 4512

C++ typedef 以及 typedef struct 用法

C++ typedef 以及typedef struct 用法1 概述2 typedef作用及用法3 区别 #define4 typedef struct在c/c++中的区别4.1区别一4.2区别二5 参考资料 1 概述 typedef 为C语言的关键字,作用是为一种数据类型定义一个新名字,这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 typedef 本身是一种存储类的关键字,与 auto、extern、static、register 等关键字不能出现在同一个表

liuluan03161009的博客 8221

Typedef Struct 用法详解

Typedef Struct 用法详解 一、typedef用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间。 实例像: typedef int INT; typedef int ARRAY[10]; typedef (int*) pINT; typedef可以增强程序的可读性,以及标识符的灵活性...

PengCoX 9927

typedef用法详解

typedef与#define的区别: (1)typedef创建的符号名只限于类型,不限于值 (2)typedef由编译器解释,不是预处理器 typedef的四种用法 在实际应用中,typedef主要有下面四种用法: 1)typedef基本数据类型取“别名” 也就是说,C语言中的所有数据类型都可以用typedef关键词来重新定义类型名 typedef unsigned int size; typedef unsigned int16 u16; typedef unsigned int8 u8; . . .

wu_junwu的博客 4万+

typedef用法简介

作用 typedef是C语言的一个重要的关键字,是为数据类型的定义一个新的名字。也就是类型的别名。 例: 定义一个int 型变量,并对其赋值,输出变量的值 #include<stdio.h> int main(void) { int a = 10; printf("a = %d", a); return 0; } 如果我想使A代表int类型呢?也就是A是int的别名 #include<stdio.h> typedef int A; int main(void)

shanglala的博客 1万+

typedef用法——c语言

typedef用法

weixin_47783699的博客 1万+

c语言中typedef用法

typedef是为现有的类型起一个别名,使使用起来更加的方便,注意一点,它并没有产生新的类型。 typedef int BOOL;为int型起了一个新的别名BOOL。例如下边的代码,BOOL为int的别名,然后就可以直接使用了。 typedef int BOOL; #define TRUE 1 #define FALSE 0 BOOL flag = TRUE; 在结构体中的用法 typ...

Mr.yang 2万+

C++ typedef用法详解

typedef的4种常见用法:1. 给已定义的变量类型起个别名;2. 定义函数指针类型;3. 定义数组指针类型;4. 为复杂的声明定义一个新的简单的别名

Jason_Lee155的博客 3227

typedef的详细用法

不太想谈#define, 在题主的例子的这种用法里, 它就是个文本替换工具, 预处理器完成的, 无脑替换, 跟word里的replace一模一样, 不关编译器的事. 我想谈一下typedef. 搞懂了c++创始人写的<the design and evolution of cpp>中的下面这个例子, 有助于你理解typedef: typedef int P(); typedef int Q(); class X { static P(Q); // 等价于`static int Q()`,

寻梦&之璐 4420

C语言中typedef用法

double x;double y;double z;在这里,结构体 struct Point 为新的数据类型,在定义变量的时候均要向上面的调用方法一样有保留字 struct,而不能像 int 和 double 那样直接使用 Point 来定义变量。double x;double y;double z;} Point;在上面的代码中,实际上完成了两个操作:double x;double y;double z;

pangyushuang的博客 1万+

关于typedef用法

见示例: CASE 1 #include<stdio.h> typedef int ZHAGNSAN;//为 int 再重新多取一个名字, ZHAGNSAN等价于 int typedef struct Student { int sid; char name[100]; char sex; }ST; int main(void) { int i...

有趣的人生 一半是山川湖海 一半是初心情怀 216

python typedef用法_typedef用法,C语言typedef详解

C语言允许用户使用 typedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的结构型名称、共用型名称、枚举型名称等。一旦用户在程序中定义了自己的数据类型名称,就可以在该程序中用自己的数据类型名称来定义变量的类型、数组的类型、指针变量的类型与函数的类型等。例如,C 语言在 C99 之前并未提供布尔类型,但我们可以使用 typedef 关...

weixin_39963830的博客 1111

C语言中的typedef struct用法

在学习数据结构的时候,我经常遇到typedef struct,刚开始感觉很别扭,查阅资料之后才真真理解了。有没有觉得很麻烦,我们隐隐约约察觉到,多写一个struct很费劲,因此才有了下面的typedef。如果要定义一个该结构体变量,就需要:struct Student st1;有没有觉得很省事,的确是这样。那么我们定义该结构体变量的时候,就可以使用。就可以直接使用 Stu st1;我们也可以直接省略掉。

诚朴勇毅 3098

Typedef Struct 用法详解和用法小结

第一篇:typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。 2. typedef & 结构的问题 当用下面的代码定义一个结构时

sempre20的博客 6372

typedef和define的区别、typedef的具体用法

define这里为什么报错呢?是因为#define integer int*只能声明一个指针i,对第二个j是个int类型的数据,相当于int *i,j;所以变量j不能赋值一个地址,即会报错。unsigned integer会使代码报错,原因是typedef只能对数据类型进行整体封装,不能局部封装,所以当你想要对unsigned int类型进行取别名时,只能整体取。typedef最核心的用法:给数据类型取别名,这个别名既可以是此数据类型的替换,也是指向此数据类型的指针。

lxwyyds的博客 2588
上一篇: struct的精确用法
下一篇: 如何用代码将网页打开
sidso
博客等级 码龄2年 171粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值