今天在SDK中看到了这么个写法:

typedef void(CALLBACK *DisplayCBFun)(long    nPort,char    *pBuf,long    nSize,long    nWidth,long    nHeight,long    nStamp,long    nType,long    nReceved
);

有点不解。于是查资料,以typedef void(*Fun)(void);为例

在我的印象里,#define和typedef,从用法来看,感觉差别不大

比如、#defineINT int;

typedef int INT;

直觉上来说,都是用某个关键字代替了另一个关键字

但最开头的写法,就没法用这个感觉来解释了

于是我换了一个思路来理解这个typedef

我们首先看常规的变量定义:

int INT//定义了一个名为INT的int型变量。

char *c//定义了一个名为c的char型指针变量

void(*Fun)(void);//定义了一个名为Fun的,返回值为void,无参数的函数指针

加上typedef以后,就可以理解为,原来的变量名变成了自己本身对应的类型名

如typedef int INT  ;INT就代表了int类型

c就变成了char*

typedef void(*Fun)(void);   Fun就代表了“返回值为void,无参数的函数指针”型

转载于:https://www.cnblogs.com/peterYong/p/6556553.html

typedef void(*Fun)(void);相关推荐

  1. typedef interrupt void (*PINT)(void)的分析

    今天写程序时,在DSP2833x_PieVect.h看到typedef interrupt void (*PINT)(void)突然一愣,上网查了下发现在这是加了interrupt 中断关键字的函数指 ...

  2. typedef int(init_fnc_t) (void) 和 typedef int(*init_fnc_t) (void)函数类型和函数指针的区别

    转载请注明原地址:http://blog.csdn.net/oyhb_1992/article/details/76975284 typedef int(init_fnc_t) (void)和 typ ...

  3. void指针(void *的用法)

    指针有两个属性:指向变量/对象的地址和长度  但是指针只存储地址,长度则取决于指针的类型  编译器根据指针的类型从指针指向的地址向后寻址  指针类型不同则寻址范围也不同,比如:  int*从指定地址向 ...

  4. c语言void* arg,求教!!!void *(*process) (void *arg);

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #include typedef struct worker { /*这是一个回调 ...

  5. void (*fun)(void);什么意思?

    void (*fun)(void); 查阅资料得知这句代码的意思是: 定义一个函数指针. 比如:定义一个指向函数的指针,该函数有一个整形参数并返回一个整型值 int(*fun)(int): 再比如原来 ...

  6. c语言 void**类型转换,void指针类型强制转换

    如何将一个void*强制转换成行指针类型? void*指针可以转换成任何类型的指针. 强制转换即可,比如 (int *)(void *)p; 假设你的数组有N行M列的int型数据. int arr[N ...

  7. [转]C/C++语言void及void指针深层探索

    1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误.本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧. 2 ...

  8. IAR中断定义#pragma vector = P0INT_VECTOR __interrupt void P0_ISR(void)啥意思?

    在CC2530芯片中用到IAR中断定义: #pragma vector = P0INT_VECTOR __interrupt void P0_ISR(void) 在 IAR 编译器里用关键字来t __ ...

  9. C/C++语言void及void指针深层探索 .

    1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误.本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧. 2 ...

最新文章

  1. 宏基因组合种树,2-4天领证,1/2号车满员,3号车成立,机会来了
  2. lvs的十种调度算法概念
  3. python asyncio tcp server_Python 3.4 中新的 asyncio : Servers、Protocols 和 Transports
  4. 基于Python操作ElasticSearch
  5. Win10 插入耳机无声问题 解决办法
  6. 覆盖所有面试知识点,建议收藏
  7. 百度地图iOS API
  8. Visual Studio Code 使用Git进行版本控制
  9. CentOS 7.4安装postgresql96
  10. 如何开发一个完整的JavaScript组件
  11. 归并排序——Java代码实现
  12. 多线程设计实例——Monte Carlo法估算圆周率
  13. JAVA毕业设计vue宿舍管理系统计算机源码+lw文档+系统+调试部署+数据库
  14. 【NOIP提高组五校联考】挖金矿
  15. 不同Costa环鉴相器鉴别特性
  16. Chromium Embedded Framework (CEF) 介绍
  17. 一文掌握python连接SQL Server,MySQL,MongoDB,Redis数据库
  18. java多态的多种表现形式
  19. 计算机网络里不显示共享打印机驱动,win10连接共享打印机时“找不到驱动程序”怎么回事...
  20. 【blade的UI设计】理解前端MVC与分层思想

热门文章

  1. 中医药可投期刊推荐-24本-2021版
  2. 荧光共定位定量分析,单通道散点图剖析
  3. 第12天学习Java的笔记(数组小练习,数组与方法)
  4. java自定义异常返回_Java自定义异常
  5. 机器人学习--AMCL导航包自己修改源码编译和调用方法
  6. 计算机视觉与深度学习 | 粒子群算法与遗传算法(GA)及与蚁群算法(ACO)比较
  7. php 假多态,论PHP面向对象之-多态
  8. Scikit-Learn 机器学习笔记 -- MNIST
  9. rust(53)-智能指针
  10. 趣学python3(7)-循环语句(1)