C — void*与int之间的相互转换

  老是记错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;
}

  

猜你喜欢

转载自www.cnblogs.com/darkchii/p/9077285.html