关于typedef的正确理解

我对typedef的理解一直都是认为它和#define一样,分成三个部分,比如:

#define A B

但是遇到以下这种函数类型定义

typedef void (*funcName)(int);

按照上面的理解,难道是要把void定义成(*funcName)(int)?显然不对。

这个问题困扰了我很久。typedef并不是以空格为分隔符,把一句定义分隔成几个固定的部分来处理的。

typedef这个预处理关键字的意思是:定义一个类型常量。也就是说,定义内容里面除了类型部分,就是常量部分,至于它们的位置,没有固定的前后顺序,符合常规的语法就行。比如

typedef unsigned int uint
typedef QString QStr
typedef int (*funcName)(char, bool)

分析类型定义式时,你只需要找出里面包含的类型,常量名即可,不要用#define来理解它。

posted @   撬动未来的支点  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示