在 变参函数 内判断 参数 的类型是否可行?
void printf ( char* format , ... )
{
va_list pParameter ;
va_start( pParameter , format );
void* vTemp = va_arg( pParameter , void* ) ;//取参时???
va_end( pParameter );
}
有没有办法判断从参数栈里取出来的参数类型???高人指教!
只需要判断取出来的参数是整型还是字符型就可以了!!
[解决办法]
要是可以的话 printf 就不会有一个充满了 % 号的参数了。
不过你可以判断取出来的值是不是一个有效的指针。单整数也有可能刚好是一个指针的。
[解决办法]
通过typeinfo是可以识别类型,但是不同编译器实现不同,没有通用方法。
[解决办法]
没有办法。
而且实际上整型和字符型都是同样处理的。
typeid无法用于可变类型。