老是记错int 与 void*之间的转换,所以记录一个,顺便用一下一些宏。。。
#include <stdio.h> #define VNAME(name) (#name) typedef void*(*func)(void*); void call(func myfunc, void*var) { (*myfunc)(var); } void*myfunc(void*var) { printf("In %s:%d:\n", __func__, __LINE__); printf("变量%d=%d\n", VNAME(var), *(int*)var); } int main(int argc, char** argv) { int i = 0; printf("%s:%s\n", __FILE__, argv[i]); call(myfunc, (void*)&i); return 0; }