70,023
社区成员




void Convert(int type,void* param);
void Number(void* param);
void String(void* param);
void Convert(int type,void* param)
{
switch(type) {
case 0:
Number(param);
break;
case 1:
String(param);
break;
default:
break;
}
}
void Number(void* param)
{
int num;
num = (int*)param; //会有一个warning C4047: '=' : 'int ' differs in levels of indirection from 'int *'
printf("Number:%d\n",num);
}
void String(void* param)
{
char* str;
str = (char*)param;
printf("String:%s\n",str);
}
int main(int argc, char* argv[])
{
Convert(0,(void*)2);
Convert(1,(void*)"hello");
return 0;
}
int num;
num = (int*)param; //会有一个warning C4047: '=' : 'int ' differs in levels of indirection from 'int *'
printf("Number:%d\n",num);
int main(int argc, char* argv[])
{
//Convert(0,(void*)2);
// 这句可以这样改,你上面的写法是把2转换为指针地址了,下面的是将int型指针转换为void*
Convert(0,(void*)&2);
Convert(1,(void*)"hello");
return 0;
}
void Number(void* param)
{
int num;
//num = (int*)param; //会有一个warning C4047: '=' : 'int ' differs in levels of indirection from 'int *'
//对应的,这块也要进行相应的修改
num = *( (int*)param) ;
printf("Number:%d\n",num);
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
void Convert(int type,void* param);
void Number(void* param);
void String(void* param);
void Convert(int type,void* param){
switch(type){
case 0:
Number(param);
break;
case 1:
String(param);
break;
default:
break;
}
}
void Number(void* param){
int num;
num = (int)param; //mark
printf("Number:%d\n",num);
}
void String(void* param){
char* str;
str = (char*)param;
printf("String:%s\n",str);
}
int main(int argc, char* argv[]){
Convert(0,(void*)2);
Convert(1,(void*)"hello");
return 0;
}