typedef的用法

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的用法》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值