能够正确传递参数就行。实参是地址常量或指针时,形参需要是和实参类型相同的指针,或者是void*指针。当然,可以用const/volatile之类的类型限定符修饰形参类型。
例如
struct X
{
int b;
};
void foo(void* x);
void foo1(char* x);
void foo2(int* x);
void foo3(struct X x);
char a[10];
调用foo(a)、foo1(a)是可以的,但调用foo2(a)、foo3(a)就不行,因为无法转换a到int*或struct X类型而无法传递参数。如果用foo2((int*)a)也能够编译通过。
----
[原创回答团]
是看你的形参,不管你的实参!形参是什么,就传什么实参给它啊!
如形参是指针,你就传指针或地址!