开发者社区> 问答> 正文

C语言怎么实现一个能适用于不同数据类型的函数?

比如我想写一个函数,想看一个给定的数组中是否包含某个元素,如果包含该元素,返回该元素的索引,否则返回-1.

问题是怎么写这样一个函数,可以适用于不同的数据类型。 抽象数据类型先撇开不讲,怎么写这样一个函数,可以适用于 int, char, float 等这些基本的数据类型。

// value 是要查询的元素, array是数组, len是数组长度 
int inArray(void *value, void *array, int len)
{
    int i;
    for(i=0; i<len; i++)
        if(*value == array[i])
            return i;

    return -1;
}

我写了这样一个函数,但是编译通不过。请高手指点一下,有什么好的方法?

展开
收起
a123456678 2016-06-06 09:41:57 2730 0
1 条回答
写回答
取消 提交回答
  • int in_array(const void *arr, int arr_len, const void *elem, int elem_size)
    {
        int i;
        const void *p = arr;
        for (i = 0; i < arr_len; i++, p += elem_size)
            if (memcmp(p, elem, elem_size) == 0)
                return 1;
        return 0;
    }
    2019-07-17 19:27:38
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载