c没有模板,因此必须使用void *函数

时间:2018-10-13 04:51:28

标签: c

对于诸如下面的函数,我怎样才能使void *函数有点像c ++模板。我以前做过,但是不记得如何正确地重建它。

float add(float a, float b)
{
 return a + b;
}

int add(int a, int b)
{
return a + b;
}

我认为它几乎类似于

  void* fun(void *a)
{
    return (void*)a;
}

但是以上方法不起作用。 我该如何解决以上问题。

1 个答案:

答案 0 :(得分:1)

您可以定义这样的宏。

#define add(x,y) ((x)+(y))

但是,在使用宏时应小心,因为在预处理之后仅会发生文本替换。理想情况下,内联函数应优先于宏。

对于您的特定用例,您应该阅读generic selections