我有一个带两个参数的函数,第一个是char *第二个可以是char或char *
然后,这就是我想要做的事情
void my_function(char *arg1, XXXX arg2)
{
if (XXXX == char)
//convert arg2 in char*
do_something_else(arg2);
}
问题是,我不知道我怎么能得到arg2的类型
答案 0 :(得分:1)
您可以使用另一个选择所选类型的成员传递包含您的类型的结构。
struct my
{
char* s ;
char c ;
int type ;
}
然后使用检查做正确的事情:
if( m.type == 1 )
{
m.s = ... //do something with char*
}
else if( m.type == 2 )
{
m.c = ... //do something with char
}
如果你坚持使用变量参数函数,那么使用printf()使用的方法。第一个参数包含每个传递的可选参数的数量和类型。