摘要: #define LOADBASSFUNCTION (f) *((void **)&f)=( void*)GetProcAddress (hBass,# f)这一句话使用*((void**)&f)的原因在于,转化目标为左值(即转化f为void*类型(*)的函数指针)。注意这里的(void**)强制类型转换仅仅只是重新声明了指针解引用的方式,并没有提升指针的引用层级。意思上*((void**)&f)与f是相等的(忽略(void**)只看*&f就知道这本质上就是先取地址再解引用)。但是不能直接使用f,因为一个函数名不能做左值(要做左值必须指针化,也就是变成函数指针)。 阅读全文
posted @ 2014-03-10 10:53 wubugui 阅读(489) 评论(0) 推荐(0) 编辑