0
点赞
收藏
分享

微信扫一扫

C/C++代码解析之深度学习

贵州谢高低 03-07 21:30 阅读 1
c语言c++

不定时更新实战项目中C、C++学习内容

一、学使用-学校没用过系列

1. typedef:为函数指针类型创建别名

1.1 typedef

typedef 是 C 语言中的一个关键字,用于为已有的数据类型定义新的名称,从而增强代码的可读性和可维护性。typedef 的主要作用是创建类型别名。

以下是 typedef 的一般用法:

  1. 为基本数据类型创建别名

    typedef int myInt;
    

    这行代码将 int 类型创建了一个别名 myInt。现在可以使用 myInt 来代替 int 类型。

  2. 为结构体创建别名

    typedef struct {
        int x;
        int y;
    } Point;
    

    这里创建了一个结构体,并为它创建了别名 Point。现在可以直接使用 Point 来代替这个结构体的定义。

  3. 为指针创建别名

    typedef char *String;
    

    这行代码将 char * 类型创建了一个别名 String。现在可以使用 String 来代替 char * 类型。

  4. 为函数指针类型创建别名

    typedef void (*FunctionPointer)(int);
    

    这里创建了一个函数指针类型,并为它创建了别名 FunctionPointer。现在可以使用 FunctionPointer 来代替这个函数指针类型的定义。

typedef 在 C 语言中非常有用,可以简化代码并提高可读性。通过为数据类型创建别名,我们可以使代码更易于理解,并且在需要修改类型时只需修改一处即可,提高了代码的可维护性。

1.2 为函数指针类型创建别名

下面是一个完整的示例,演示如何使用 typedef 为函数指针类型创建别名,并在程序中进行声明、调用和销毁:

#include <stdio.h>

// 定义函数指针类型并为其创建别名
typedef void (*FunctionPointer)(int);

// 示例函数,接受一个函数指针作为参数
void callFunction(FunctionPointer func) {
    // 调用传入的函数指针
    func(42);
}

// 示例函数,用于打印传入的整数值
void printNumber(int num) {
    printf("The number is: %d\n", num);
}

int main() {
    // 使用别名的方式声明函数指针变量
    FunctionPointer ptr = printNumber;

    // 调用函数指针所指向的函数
    callFunction(ptr);

    return 0;
}

在这个示例中,我们首先使用 typedef 创建了一个名为 FunctionPointer 的函数指针类型别名,该函数指针接受一个 int 参数并没有返回值。然后我们定义了两个函数:callFunction 函数用于接受一个函数指针作为参数并调用该函数指针,printNumber 函数用于打印传入的整数值。

main 函数中,我们声明了一个函数指针变量 ptr,并将其初始化为指向 printNumber 函数。然后我们调用 callFunction 函数,并将 ptr 作为参数传入,从而间接调用了 printNumber 函数。

通过这种方式,我们可以看到如何使用 typedef 和函数指针来简化代码并实现函数指针的声明、调用和销毁操作。

举报

相关推荐

0 条评论