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