typedef和函数指针

news/2024/6/1 20:40:03

先看一个例子:

    typedef  int (*pFun)(int a, int b);

    pFunpFunTest;

在上边的代码中,初看会使人误解,怎么能使用函数指针pFun来声明一个类型呢?

相信很多人和我都有这样同样的感受。

我就先从typedef说起,使用typedef能定义新的类型

比如:

    typedef  int int_32;

这里int_32就是一个新的类型,虽然这个类型和int是一样的,那我们就可以将typedef的功能公式化

即:

    typedef  A B;其中B是依靠A而产生的新类型。

现在我们回到最上边的例子typedef int(*pFun)(int a, int b);如果按照常理理解是不是这样

    typedef  A B; 其中A 为int (*pFun)(int a, int b),B为空

按照这种方式那么就理解不通了。

咱们试着这样来理解typedef int(*pFun)(int a, int b);

                                typedef A B;其中A 为int ,B为(*pFun)(int a, int b)

这样解释就可以说明白了,就是依靠int这个类型来定义出新的类型(*pFun),那这样pFun pFunTest就可以正常理解了。

 


http://www.niftyadmin.cn/n/780479.html

相关文章

二维指针趣谈

先看一段代码&#xff1a; #include <stdio.h> void fun(int **ppTemp) { int a 0; int *pTemp &a; printf("The address of pTemp is %d\n", pTemp); *ppTemp &pTemp; printf("The address of ppTemp is %d\n&qu…

VirtualBox上安装CentOS6.4(一)

自己在virtual box中安装CentOS6.4过程&#xff0c;供大家参考&#xff0c;欢迎转载。 虚拟软件很多&#xff0c;常见的有vmware和virtual box&#xff0c;直观上的区别vmware收费&#xff0c;virtual box免费&#xff0c;如果只注意到这一点&#xff0c;那就有一点初级了&…

VirtualBox安装CentOS6.4(二)

上一篇博客介绍了VirtualBox创建虚拟文件的步骤&#xff0c;这一篇开始介绍安装CentOS6.4 1.安装系统前&#xff0c;如下截图先加载CentOS6.4的镜像&#xff0c;然后点击虚拟机启动来安装 2.启动安装后&#xff0c;centos会提供几种安装类型&#xff0c;我们现在是全新安装&am…

VirtualBox安装CentOS6.4(三)

这一篇博客介绍安装完CentOS后&#xff0c;配置共享目录&#xff0c;以方便虚拟机和windows主机共享操作文件 1.创建共享目录&#xff0c;首先需要在CentOS中安装支持共享目录的文件系统&#xff0c;安装文件默认是在virtualbox安装文件夹中VBoxGuestAdditions.iso&#xff0c…

memcached源码分析一

memcached是一款经典的分布式内存缓存&#xff0c;daemon端代码都是由纯C开发&#xff0c;其中有很多可以学习的地方&#xff0c;陆续将内容加入进来&#xff08;基于版本1.4.15&#xff09;。 开篇&#xff0c;先讲memcached的源码文件概述&#xff0c;看源码的文件依赖&#…

AMQP协议一

AMQP(Advanced Message Queuing Protocol)高级消息队列协议 AMQP是跨语言的协议&#xff0c;提供不同设备间消息生产者和消息消费者之间的操作。基于传输层TCP之后。 翻译版本为V1.0 省略了前言中的说明&#xff0c;从文档结构开始翻译 怎样阅读标准 AMQP规范被定义成几部分…

AMQP协议二

书一 类型 1.1 类型系统 AMQP类型定义了常用的基本类型来用于互相操作数据时的表示。AMQP使用一些额外的语义信息来描述基本类型对应的值。这就允许与AMQP值相关联的一些描述信息作为基本类型出现在规范中。例如&#xff1a;URL通常被定义成字符串&#xff0c;但是不是所有的…

AMQP协议三

1.2 类型封装 AMQP封装的数据流是由包含内嵌构造器的非类型化的字节组成的。内嵌的构造器标明是如何解释非类型化的字节的。构造器的功能就是跳过非类型化的字节的终点&#xff0c;然后获取类型对应的值。AMQP封装的数据流开始总是一个构造器。 constructor …