C语言实现泛型编程
很遗憾,C语言本身并不支持真正意义上的泛型编程,但是可以通过一些方法在一定程度上实现泛型编程.
例如使用void *
进行类型擦除
,实现一定程度上的"泛型";使用_Generic
关键字等…
使用void*类型擦除来实现
泛型实现一些算法
swap()函数
一般的swap只能特定处理某一种类型:
void swap(int*a, int*b);
可以使用void*
擦除类型,并用memcpy()进行数据处理:
1 | void swap(void *a,void *b,int size){ |
顺序表lsearch()函数
同理,这次用memcmp()进行数据比较:
1 | void* lsearch(void* base,int n,void* key,int elemSize){ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WAHAHA's blog!
评论