typedef int()(int,int)

typedef int (*f)(int,int) 和 typedef int *f(int,int)
从函数声明说起

int f(int,int);或者int *f(int,int);
前者声明一个具有其特征的函数,后者声明了一个具有其特征的指针函数。
例:

#include “stdio.h”
//因为自定义的函数在main函数之后,所以在使用自定义函数之前
//需要声明自定义函数
//所以有函数声明:
int add(int,int);
int fun(int,int*);
int main()
{
int a=2,b=3;
printf(“%d %d”,add(a,b),*(fun(&a,&b)));
return 0;
}
int add(int a,int b){return (a+b);}
int *fun(int *a,int *b){*a=*a+*b;return a;}

再到用指针变量调用函数

int (*f)(int,int);或者int *(*f)(int,int);
前者直接定义了一个指针变量 f ,f 可以被赋值为具有其特征的函数的函数名,即指向该函数;
后者也直接定义了一个指针变量 f ,f 可以被赋值为具有其特征的指针函数的函数名,即指向该指针函数;
例:

#include “stdio.h”

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

int (fun_a)(int, int);
int
(fun_f)(int, int*);

int main()
{
int a = 2, b = 3,c = 4,d = 5;
fun_a = add;//注意此处赋值!!!
fun_f = fun;
printf(“%d %d”, fun_a(a, b), *(fun_f(&c, &d)));
return 0;
}

最后到 typedef 新类型定义

typedef int (*f)(int,int);和 typedef int *(*f)(int,int); 或者 typedef int f(int,int);和typedef int *f(int,int)
typedef int (*f)(int,int); 和 typedef int *(*f)(int,int);
该语句定义了一个新类型 f ,f 类型可以定义一个变量,该变量可以被赋值为具有其特征的函数的函数名,即指向该函数;(后者指向指针函数)
例:

#include “stdio.h”

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

typedef int (fun_a)(int, int);
typedef int
(fun_f)(int, int*);

int main()
{
int a = 2, b = 3,c = 4,d = 5;
fun_a ADD;
fun_f FUN;
ADD = add;//注意此处赋值!!!
FUN = fun;
printf(“%d %d”, ADD(a, b), *(FUN(&c, &d)));
return 0;
}

typedef int f(int,int);和typedef int *f(int,int)
该语句定义了一个新类型 f ,f 类型可以声明函数;(后者声明指针函数)
例:

#include “stdio.h”
typedef int fun_a(int, int);
typedef int fun_f(int, int*);

int main()
{
int a = 2, b = 3,c = 4,d = 5;
fun_a add;//注意此处声明!!!
fun_f fun;
printf(“%d %d”, add(a, b), (fun(&c, &d)));
return 0;
}
int add(int a, int b) { return (a + b); }
int
fun(int* a, int* b) { *a = *a + *b;return a; }
————————————————
版权声明:本文为CSDN博主「东の晦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/CHEN_ShuTong/article/details/106962706

typedef int()(int,int)相关推荐

  1. 对typedef void (*sighandler_t)(int)的理解(声明了一种类型:sighandler_t)

    typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); 此处由于加了type ...

  2. 对函数指针与typedef的理解:typedef void (*sighandler_t)(int)

    文章目录 缘由 解释函数指针int (\*f)(int*); 解释typedef void(*sighandler_t)(int) 缘由 2021年9月22日在刷CS:APP的时候,邂逅了一种函数指针 ...

  3. 堆元素插入 二叉堆一般用数组来表示。typedef struct _otherInfo{ int i; int j;}OtherInfo;-icoding-C-数据结构

    堆元素插入 二叉堆一般用数组来表示.例如,根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2.  因此,第0个位置的子节点在1和2,1的子节点在3和4.以此类推.这种存储方式便于寻 ...

  4. 4.根据提示,完成下面的程序。#include<stdio.h>typedef struct date {int year;int month;int day;} Date;void

    4.根据提示,完成下面的程序. #include<stdio.h> typedef struct date { int year; int month; int day; } Date; ...

  5. typedef int(*P)(int )

    typedef int(*P)(int ) typedef 主要的作用是给变量取别名,但是存在一些比较特殊的用法.可用于通过给函数起别名的方式定义回调函数. typedef int(*P)(int ) ...

  6. #include int inc(int a) { return(++a); } int multi(int*a,int*b,int*c) { return(*c=*a**b); }

    今天做到一题面试题如下, 读到第9行的时候发现和自己理解的有出入. 个人理解函数名是函数的入口地址就是一个人指针,那为什么还要取地址再赋值给p呢? 带着疑惑百度了一番,发现网上没人发现程序中的问题,所 ...

  7. void (*f(int, void (*)(int)))(int) 函数解析

    函数指针 今天与几个同学看到了一个函数指针定义: void (*f(int, void (*)(int)))(int) 以前在C trap pit fails里面见过,但是文章里面介绍的很详细,但是往 ...

  8. long long int 和 int

    来源:牛客网 题目描述 这一节课,Priest给大家做了一个小测试. 老师给了你两个正整数X, Y.并按照一下规则做运算,求出答案Z. 如果X是Y的因数,则Z等于X + Y.否则Z = Y - X. ...

  9. 俩个有趣代码( * ( void( * )( ) ) 0 )( )和void( *signal( int,void ( * )( int ) ) )( int )的意义

    题目的在这俩个代码是不是咋一眼看起来非常的繁重和不解其意,接下来我就跟你说道说道这俩个有趣的代码. 一:( * ( void( * )( ) 0 ) ( ) 要想知道一个代码的意义,首先得分析这个代码 ...

  10. const int * 、int * const、int const* 、const int a(){ } 和int a()const { }的区别和联系

    前言:很多人都把const int * .int * const.int const* 的区别和联系搞混,我自己在学习C++的过程中,也经常性          弄不 清楚,今天特意总结一下,作为学习 ...

最新文章

  1. 天堂Lineage(單機版)從零開始架設教學 Installing Lineage 3.52 Server - On Windows
  2. oracle数据本机自动备份
  3. 189. 旋转数组 golang
  4. “约见”面试官系列之常见面试题之第七十一篇之let和var和const区别(建议收藏)
  5. 使用java来进行分词处理
  6. JS对象 - Array属性方法汇总
  7. exec和source的区别
  8. 关于 extern inline
  9. c语言ds12c887,ds12c887引脚图 DS12C887中文资料.doc
  10. Matlab中freqz函数使用
  11. exchange批量创建用户邮箱
  12. Java项目论文+PPT+源码等]S2SH+mysql的报刊订阅系统
  13. [embeded] Relocations in generic ELF (EM: 183)
  14. 滴滴『技术高层』再生变,高级副总裁章文嵩将离职,他曾为阿里云CTO,投身开源20年...
  15. 刷题——求斐波那契数列的第n项(迭代)
  16. 2021-01-19第二次Sping Boot学习汇报--利用用Spring Initializr构建项目
  17. 不同安卓模拟器连接appium的端口
  18. Praat脚本-006 | 批量修改删除复制某一层
  19. Unity tolua问题记录
  20. DVWA之CSRF攻击

热门文章

  1. 华为鸿蒙国内厂商适配,华为再放大招!鸿蒙系统将适配高通/联发科手机:获国产厂商力挺...
  2. [Codeforces757E]Bash Plays with Functions数学
  3. Java24种设计模式(第二种)--代理模式(Proxy Pattern)
  4. 聊聊那些专为算法设计的模式——模板方法模式
  5. 黄蓝专场之 | 小蓝单车生死故事
  6. 随笔集:H5如何对接原生app的方法
  7. EasyExcel初了解
  8. 用java开发app的步骤,看看这篇文章吧!
  9. ❤️❤️马上安排!闺女想在游戏里成为【超人】,Python游戏开发模块Pygame系列之【跳跃的小球】❤️❤️源码
  10. 3-9xss的盲打以及盲打实验演示