typedef int()(int,int)
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)相关推荐
- 对typedef void (*sighandler_t)(int)的理解(声明了一种类型:sighandler_t)
typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); 此处由于加了type ...
- 对函数指针与typedef的理解:typedef void (*sighandler_t)(int)
文章目录 缘由 解释函数指针int (\*f)(int*); 解释typedef void(*sighandler_t)(int) 缘由 2021年9月22日在刷CS:APP的时候,邂逅了一种函数指针 ...
- 堆元素插入 二叉堆一般用数组来表示。typedef struct _otherInfo{ int i; int j;}OtherInfo;-icoding-C-数据结构
堆元素插入 二叉堆一般用数组来表示.例如,根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2. 因此,第0个位置的子节点在1和2,1的子节点在3和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; ...
- typedef int(*P)(int )
typedef int(*P)(int ) typedef 主要的作用是给变量取别名,但是存在一些比较特殊的用法.可用于通过给函数起别名的方式定义回调函数. typedef int(*P)(int ) ...
- #include int inc(int a) { return(++a); } int multi(int*a,int*b,int*c) { return(*c=*a**b); }
今天做到一题面试题如下, 读到第9行的时候发现和自己理解的有出入. 个人理解函数名是函数的入口地址就是一个人指针,那为什么还要取地址再赋值给p呢? 带着疑惑百度了一番,发现网上没人发现程序中的问题,所 ...
- void (*f(int, void (*)(int)))(int) 函数解析
函数指针 今天与几个同学看到了一个函数指针定义: void (*f(int, void (*)(int)))(int) 以前在C trap pit fails里面见过,但是文章里面介绍的很详细,但是往 ...
- long long int 和 int
来源:牛客网 题目描述 这一节课,Priest给大家做了一个小测试. 老师给了你两个正整数X, Y.并按照一下规则做运算,求出答案Z. 如果X是Y的因数,则Z等于X + Y.否则Z = Y - X. ...
- 俩个有趣代码( * ( void( * )( ) ) 0 )( )和void( *signal( int,void ( * )( int ) ) )( int )的意义
题目的在这俩个代码是不是咋一眼看起来非常的繁重和不解其意,接下来我就跟你说道说道这俩个有趣的代码. 一:( * ( void( * )( ) 0 ) ( ) 要想知道一个代码的意义,首先得分析这个代码 ...
- const int * 、int * const、int const* 、const int a(){ } 和int a()const { }的区别和联系
前言:很多人都把const int * .int * const.int const* 的区别和联系搞混,我自己在学习C++的过程中,也经常性 弄不 清楚,今天特意总结一下,作为学习 ...
最新文章
- 天堂Lineage(單機版)從零開始架設教學 Installing Lineage 3.52 Server - On Windows
- oracle数据本机自动备份
- 189. 旋转数组 golang
- “约见”面试官系列之常见面试题之第七十一篇之let和var和const区别(建议收藏)
- 使用java来进行分词处理
- JS对象 - Array属性方法汇总
- exec和source的区别
- 关于 extern inline
- c语言ds12c887,ds12c887引脚图 DS12C887中文资料.doc
- Matlab中freqz函数使用
- exchange批量创建用户邮箱
- Java项目论文+PPT+源码等]S2SH+mysql的报刊订阅系统
- [embeded] Relocations in generic ELF (EM: 183)
- 滴滴『技术高层』再生变,高级副总裁章文嵩将离职,他曾为阿里云CTO,投身开源20年...
- 刷题——求斐波那契数列的第n项(迭代)
- 2021-01-19第二次Sping Boot学习汇报--利用用Spring Initializr构建项目
- 不同安卓模拟器连接appium的端口
- Praat脚本-006 | 批量修改删除复制某一层
- Unity tolua问题记录
- DVWA之CSRF攻击
热门文章
- 华为鸿蒙国内厂商适配,华为再放大招!鸿蒙系统将适配高通/联发科手机:获国产厂商力挺...
- [Codeforces757E]Bash Plays with Functions数学
- Java24种设计模式(第二种)--代理模式(Proxy Pattern)
- 聊聊那些专为算法设计的模式——模板方法模式
- 黄蓝专场之 | 小蓝单车生死故事
- 随笔集:H5如何对接原生app的方法
- EasyExcel初了解
- 用java开发app的步骤,看看这篇文章吧!
- ❤️❤️马上安排!闺女想在游戏里成为【超人】,Python游戏开发模块Pygame系列之【跳跃的小球】❤️❤️源码
- 3-9xss的盲打以及盲打实验演示