void指针和typedef函数

1、void* html

void指针能够指向任意类型的数据,亦便可用任意数据类型的指针对void指针赋值。 算法

int *pint;
void *pvoid;
pvoid = pint; /* 
不过不能 pint = pvoid; */
若是要将pvoid赋给其余类型指针,则须要强制类型转换如:pint = (int *)pvoid;
当心使用void指针类型  函数

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

void*pvoid;
pvoid++;//ANSI
:错误
pvoid+=1;//ANSI
:错误 .net

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

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

2、typedef htm

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


参考: ci

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

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

相关文章
相关标签/搜索