【C】typedef 关键字 typedef int (*Operation)(int, int);

这篇具有很好参考价值的文章主要介绍了【C】typedef 关键字 typedef int (*Operation)(int, int);。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

typedef

typedef 是C语言中的一个关键字,它的主要作用是创建类型别名。是 type definition(类型定义)的缩写。目的是更清晰地表示数据类型,提高代码的可读性和可维护性。

1)基本语法

typedef 的基本语法如下:

typedef existing_type new_type;

这里 existing_type 是已存在的数据类型,而 new_type 则是你为这个已存在类型创建的别名。

2)基本类型别名

使用 typedef 可以为基本数据类型创建别名,使得代码更易读:

typedef int MyInteger;  // 将 int 类型创建别名为 MyInteger

这样,你就可以使用 MyInteger 代替 int

MyInteger num = 42;

3)结构体类型别名

在结构体的定义中,typedef 可以用于为结构体类型创建别名:

typedef struct {
    int age;
    char name[50];
} Person;

这里,Person 就是结构体类型的别名,你可以使用 Person 来声明结构体变量:

Person student1;

4)枚举类型别名

同样,typedef 也可以用于为枚举类型创建别名:

typedef enum {
    RED,
    GREEN,
    BLUE
} Color;

这里,Color 就是枚举类型的别名,你可以使用 Color 来声明枚举变量:

Color favoriteColor = BLUE;

5)函数指针类型别名(常用)

前置知识:函数指针相关知识(指向函数的指针)。

typedef 还可以用于为函数指针创建别名,提高代码的可读性:

typedef int (*Operation)(int, int);

具体解释:

  • typedef: 创建类型别名。
  • int (*Operation)(int, int): 定义一个函数指针。(函数指针:指向函数的指针)
  • 整个语句的意思是,Operation 是一个函数指针类型的别名,它可以指向返回类型为 int,接受两个 int 类型参数的函数。

你可以使用 Operation 来声明相应的函数指针变量:

typedef int (*Operation)(int, int); //给函数指针起新名字

int add(int a, int b) {
    return a + b;
}

Operation operationPtr = add; //实例一个函数指针,并赋值,让其指向某一个函数

复杂一点的例子:

typedef int (*Operation)(int, int); //给函数指针起一个别名,叫 Operation

int add(int a, int b) {
    return a + b;
}

int subtract(int a, int b) {
    return a - b;
}

void processNumbers(int x, int y, Operation operation) {   //入口参数是一个函数指针
    int result = operation(x, y);
    printf("Result: %d\n", result);
}

int main() {
    Operation addPtr = add;  // 声明并赋值函数指针

    processNumbers(4, 5, addPtr);  // 通过函数指针调用函数

    return 0;
}

这个例子包括了函数指针的声明、赋值、传递,以及通过函数指针调用函数等方面。

6)以FreeRTOS代码为例

typedef void (*TaskFunction_t)( void * ); // 给函数指针类型起新名字,叫TaskFunction_t

BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, // 用新名字定义形参,看起来会更简洁。
                        const char * const pcName, 
                        const configSTACK_DEPTH_TYPE usStackDepth, 
                        void * const pvParameters, 
                        UBaseType_t uxPriority,   
                        TaskHandle_t * const pxCreatedTask ); 

第一行,用 typedef 给函数指针类型起了新名字

第三行,形参1,使用了新类型名定义形参,看起来会更简洁明了。实质形参1 就是一个函数指针,使用时该位置就应该填入一个函数名,而该函数的定义应该满足void xxxx( void * ); 这样的格式,输入参数是一个void指针,返回值是void。

7)总结

通过使用 typedef,可以增强代码的可读性,使得数据类型的含义更加清晰。特别是在处理复杂的数据结构、函数指针等场景时,typedef 能够简化代码,使其更易理解。

总体来说,typedef 是一个在C语言中用于创建类型别名的强大工具,通过它,你可以提高代码的可维护性和可读性,使代码更容易理解。文章来源地址https://www.toymoban.com/news/detail-818516.html

到了这里,关于【C】typedef 关键字 typedef int (*Operation)(int, int);的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言-外部关键字extern

    extern  extern 用在全局变量或函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用。  什么是定义,什么是声明?       什么是定义:所谓的定义就是为这个变量分配一块内存并给它取上一个名字,这个名字就是我们经常所说的变量名。但注意,这个名

    2024年02月07日
    浏览(31)
  • 【C语言】static关键字详解

    目录 1.static是什么? 2.static修饰的对象是? 3.static修饰后改变了什么? 4.static修饰操作演示 (1) 局部变量 如果加了static修饰局部变量i会怎么样? 全局区(静态区) (2) 全局变量 如果给全局变量加上了static修饰呢? 二者区别?  这样用有什么用? (3) 函数 5.总结

    2024年02月10日
    浏览(34)
  • C语言操作符和关键字

    C语言中,0表示假,非0表示真 sizeof ++ (类型)强制类型转换 d的结果就是: static修饰局部变量 static修饰全局变量 static修饰函数

    2024年04月28日
    浏览(27)
  • C语言之static关键字详解

     前言: 一、几个概念 1.变量 2.局部变量和全局变量 3.变量的作用域 4.变量的生命周期 二、static的作用 三、static修饰局部变量 四、static修饰全局变量  五、static修饰函数  写在最后:            static,英文意思静态的,作为C语言常用中一

    2024年02月03日
    浏览(33)
  • 前端学习C语言 - 函数和关键字

    本篇主要介绍: 自定义函数 、 宏函数 、 字符串处理函数 和 。 基本用法 实现一个 add() 函数。请看示例: 其中a, b 叫 形参 ,num1, num2 叫 实参 。 Tip :形参和实参的个数不同,笔者编译器报错如下(一个说给函数的参数少,一个说给函数的参数多了): 函数调用过

    2024年02月09日
    浏览(41)
  • C语言标准定义的32个关键字

    欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。 专栏:《精通C语言》 C语言中的数据类型主要有下面

    2024年02月13日
    浏览(38)
  • Golang开发-new关键字

    在Go语言中,new用于创建一个新的零值对象,并返回指向该对象的指针。它是Go语言中用于分配内存的一种方式。 new的语法如下: 其中,Type表示要创建的对象的类型,ptr是指向新对象的指针。 以下是一个示例,演示如何使用new创建一个新的对象: 在上述

    2024年02月09日
    浏览(32)
  • 【C语言】静态关键字static的用法(详解)

     🎈个人主页:库库的里昂  🎐CSDN新晋作者  🎉欢迎 👍点赞✍评论⭐收藏  ✨收录专栏:C语言初阶  ✨其他专栏:代码小游戏  🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗 【前言】 不同于其他,他们都有多种用

    2024年02月14日
    浏览(33)
  • 【C++】C 语言 和 C++ 语言中 const 关键字分析 ( const 关键字左数右指原则 | C 语言中常量的原理和缺陷 | C++ 语言中常量原理 - 符号表存储常量 )

    【C 语言】const 用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 ) 普通类型数据的常量定义时 , const 在 数据类型 的 左边 和 右边 其作用 是相同的 ; 指针数据的相关常量类型 : const 在 指针符号

    2024年02月11日
    浏览(38)
  • 【C语言】 Static关键字的用法和详解(太细了!!!)

    文章目录 目录 前言 一、static是什么 二、static的用法 1.修饰局部变量 2.修饰全局变量          3.修饰函数 总结   static在不同的语言中又有不同的使用方法,本文介绍的是static在 C语言 当中的用法。   static在C语言中是,中文直译过来是 “静态的” ,static在

    2023年04月14日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包