我在C(嵌入式编程)中有grep函数,它将void指针作为参数.该函数需要能够处理不同类型的变量,如字符整数和长整数.我如何编写函数代码,以便它可以自己弄清楚我传递的变量类型?我不知道这是否可行.谢谢
即.
void grep( void *t )
{
if( t == char )
{
do this
}
if( t == int )
{
do that
}
...
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ins 14
任何准确性都无法做到.例如,4字节整数可以很容易地解释为字符串.例如,空终止字符串"ABC"将与整数值1094861568相同(取决于字节顺序).
Void指针只包含存储器中存储数据的位置.您无法从中推断出任何类型信息.但你可以做的是,将两个参数传递给你的函数,一个用于类型,另一个用于指针.
如果可以使用C++,则可以创建一组重载的辅助函数来提供类型信息.