迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C++ >

C++ 中函数指针的 Typedef

作者:迹忆客 最近更新:2023/08/19 浏览次数:

本文将解释 C/C++ 中 typedef 的用途。 我们将进一步讨论如何将 typedef 与函数指针一起使用以及使用它的好处是什么。

我们首先讨论 typedef 及其常见用途。


typedef 关键字

typedef 代表类型定义。 顾名思义,typedef 是一种为现有数据类型(变量类型)分配新名称的方法。

例如,如果要存储整型变量,则数据类型将为 int。 类似地,字符或字符串数据类型用于单词或短语。

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int a =10;
    string greeting="Hello!";
    return 0;
}

typedef 的帮助下,您可以将自己从实际使用的类型中分离出来,而更多地关注变量应该表示什么含义。 这使得编写干净的代码变得更简单,但也使编辑代码变得更简单。

例如,如果您要在板球比赛后记录三名不同球员的发言,则可以使用 typedef。

#include <iostream>
using namespace std;

int main()
{
    typedef char* statement;
    statement PlayerA="I played bad";
    statement PlayerB="I played very well";
    statement PlayerC=" I could not get the chance to Bat";
    cout<<"Player A said:"<<PlayerA;
    return 0;
}

在上面的代码中,char* 是一个字符指针,我们在其上应用了 typedef 关键字,以便使用新的 name 语句更改此数据类型。 在这种情况下,这个新别名更有意义,因为我们正在记录玩家的陈述。

因此,typedef 增强了代码的可读性。

typedef 也可以与函数指针一起使用。 在开始之前,让我们简单介绍一下函数指针。

函数指针

在 C++ 中,指针是保存变量的内存地址的变量。 类似地,函数指针是保存函数地址的指针。

可以使用以下代码声明函数指针:

int (*point_func)(int,int);

在上面的代码中,point_func是一个指针,它指向一个函数,该函数有两个整数变量作为参数,int作为返回类型。


带函数指针的 typedef

对于带有函数指针的 typedef 来说,语法看起来有些奇怪。 您只需将 typedef 关键字放在函数指针声明的开头即可。

typedef int (*point_func)(int,int);

上面的命令意味着您定义了一个名为 point_func 的新类型(一个带有两个 int 参数并返回一个整数的函数指针,即 int(*) (int, int))。 现在您可以使用这个新名称来声明指针。

我们来看下面的编程示例:

#include <iostream>
using namespace std;

int abc(int x1, int x2){
    return (x1 * x2);
}
int main()
{
    typedef int (*pair_func)(int,int);
    pair_func PairProduct;  // PairProduct is pointer of type pair_func
    PairProduct=&abc;          // PairProduct pointer holds the address of function abc
    int product= (*PairProduct) (20, 5);
    cout<<"The product of the pair is: "<<product;
    return 0;
}

输出:

The product of the pair is: 100

到目前为止,如果在函数指针之前使用 typedef 的话,它的作用已经很清楚了。 在上面的代码中,abc 函数接受两个参数并返回它们的乘积。

在主函数中,我们使用 typedef 为函数指针定义一个新名称(即pair_func)。 然后,我们定义了pair_func类型的PairProduct并分配了函数abc地址。

之后,我们通过取消引用指针 PairProduct(更简单的语法)并传递两个参数来调用函数 abc。

上一篇:使用 C++ 检测 Windows 中的按键

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

使用 C++ 检测 Windows 中的按键

发布时间:2023/08/19 浏览次数:127 分类:C++

本文将讨论如何使用 C++ 处理 Windows 应用程序中的按键。 在进一步讨论之前,我们将简要介绍一下使用 C++ 的 Windows 应用程序。使用 C++ 的 Windows 应用程序类型

使用 C++ 在 While 循环中输入字符

发布时间:2023/08/19 浏览次数:62 分类:C++

这个简单的文章将讨论在 C++ 中处理输入。 此外,我们将研究处理用户无效输入的问题。 最后,我们将讨论如何使用 while 循环从用户处获取输入。

C++ 中的 STL 容器中的 value_type

发布时间:2023/08/19 浏览次数:115 分类:C++

STL 是标准模板库的缩写。 它是一组数据结构和算法,用于实现 C++ 编程语言的通用容器和函数。在 C++ 中,容器将数据存储在特定类型的对象中。 有两种容器:序列容器(按顺序保存对象)和

C++ 中的常量参数

发布时间:2023/08/19 浏览次数:96 分类:C++

const 关键字在 C++ 中用于将变量定义为常量。 该关键字可以应用于任何数据类型,但最常应用于指针和引用。常量参数是可以由同一范围内的任何函数设置和使用的值。 该参数应在使用该参数

在 C++ 中创建表

发布时间:2023/08/19 浏览次数:68 分类:C++

在C++中,可以使用 iomanip 库以表格的形式显示数据。 我们还将了解 iomanip 库有助于打印表中数据的各种方法。在本文中,我们将讨论如何在 C++ 中以表格的形式打印数据。

C++ 中的 POD 类型

发布时间:2023/08/19 浏览次数:188 分类:C++

C++ 中的 POD 代表普通旧数据。 它是一个用关键字 struct 或 class 定义的类,只有 int、char、double、bool、signed/unsigned、long/short、float 等数据成员。C++ 中的 POD 类型

在 C++ 中查找对象类型

发布时间:2023/08/19 浏览次数:192 分类:C++

本文讨论在 C++ 中查找对象类型的不同方法。在 C++ 中查找类对象的类型 与简单变量的数据类型(如 int、bool 等)类似,类对象也有一个类型,即它们所属的类:

在 C++ 中定义和使用负无穷大

发布时间:2023/08/19 浏览次数:83 分类:C++

本文讨论了在 C++ 中表示负无穷大的问题并列出了一些可能的解决方案。C++ 使用 IEEE-754 标准来表示浮点数。 浮点数据类型共有三种:float、double 和 long double。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便