博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
void指针和typedef函数
阅读量:5965 次
发布时间:2019-06-19

本文共 703 字,大约阅读时间需要 2 分钟。

hot3.png

一、void*

void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。

int *pint;

void *pvoid;
pvoid = pint; /* 不过不能 pint = pvoid; */
如果要将pvoid赋给其他类型指针,则需要强制类型转换如:pint = (int *)pvoid;
小心使用void指针类型 

按照ANSI(AmericanNationalStandardsInstitute)标准,不能对void指针进行算法操作,即下列操作都是不合法的:

void*pvoid;

pvoid++;//ANSI:错误
pvoid+=1;//ANSI
:错误

在实际的程序设计中,为迎合ANSI标准,并提高程序的可移植性,我们可以这样编写实现同样功能的代码:

void*pvoid;

(char*)pvoid++;//ANSI:正确;GNU:正确
(char*)pvoid+=1;//ANSI
:错误;GNU:正确

二、typedef

typedef int (*MYFUN)(int, int)

这种用法一般用在给函数定义别名的时候
上面的例子定义MYFUN 是一个函数指针, 函数类型是带两个int 参数, 返回一个int 

参考:

http://blog.csdn.net/yming0221/article/details/6249151

http://www.cnblogs.com/shenlian/archive/2011/05/21/2053149.html

转载于:https://my.oschina.net/acemumu/blog/111873

你可能感兴趣的文章
ASP.NET 运行机制详解
查看>>
C++ little errors , Big problem
查看>>
在 ML2 中配置 OVS vlan network - 每天5分钟玩转 OpenStack(136)
查看>>
Selenium2+python自动化34-获取百度输入联想词
查看>>
【★★★★★】提高PHP代码质量的36个技巧
查看>>
如何解决/home/oracle: is a directory报警
查看>>
python基础学习笔记(九)
查看>>
BaaS API 设计规范
查看>>
bootloader功能介绍/时钟初始化设置/串口工作原理/内存工作原理/NandFlash工作原理...
查看>>
iOS开发UI篇—Quartz2D使用(矩阵操作)
查看>>
C++ 构造函数与析构函数
查看>>
vue-lazyload vue图片懒加载插件的使用记录
查看>>
java.lang.UnsupportedClassVersionError
查看>>
centos 5.4 nfs服务器搭建
查看>>
jquery获取父级元素和子级元素
查看>>
定时压缩log日志文件
查看>>
[yum]Another app is currently holding the yum lock
查看>>
远端仓库初始化成裸仓库 git init --bare
查看>>
php自动生产静态页
查看>>
DataUml Design 介绍11 - DataUML 1.5版本功能-支持无Oracle客户端
查看>>