用C实现一个简单的泛型
来源:互联网 发布:linux mysql命令大全 编辑:程序博客网 时间:2024/06/11 02:53
谁说只有C++才可以实现泛型,C照样也是可以的,废话少说,上代码
/** * c实现泛型排序 * 示例是用泛型实现数字,字符串的排序 **/#include <stdio.h>/**/#define SORT_INIT(T, name)\void sort_##name(T *array, int num, int (*SortFunc)(T a, T b))\{\int i = 1;\int k = 0;\T temp;\for(i = 1; i < num; i ++)\{\for(k = i; k > 0; k --)\{\if(SortFunc(array[k - 1], array[k]) > 0)\{\temp = array[k];\array[k] = array[k - 1];\array[k - 1] = temp;\}\}\}\}/*定义整数比较函数*/int compare_int(int a, int b){if(a < b)return -1;if(a == b)return 0;return 1;}/*定义字符串比较函数*/int compare_str(char *a, char *b){return strcmp(a, b);}/*整数排序*/SORT_INIT(int, int)/*字符串排序*/SORT_INIT(char*, str);int array[] = {2, 4, 7, 3, 8, 0, 4, 7, 2, 5, 6};char* array2[] = {"123", "345", "asd", "edfg", "dfg"};/**/int main(int argc, char **argv){int num = sizeof(array) / sizeof(int);int i = 0;int num2 = sizeof(array2) / sizeof(char*);/*整数排序*/sort_int(array, num, compare_int);/*字符串排序*/sort_str(array2, num2, compare_str);for(; i < num; i ++){printf("%d ", array[i]);}printf("\n");for(i = 0; i < num2; i ++)printf("%s ", array2[i]);printf("\n");return 0;}
- 用C实现一个简单的泛型
- 用c语言的实现一个简单的交互式shell
- 一个简单的http_server的c实现
- 一个简单用C语言实现的日志函数
- 一个简单用C语言实现的日志函数
- 用c写的一个简单web服务器实现
- 用C语言实现一个简单的计算器代码
- 用C语言实现一个简单的双色球模拟器
- 一个简单的HashMap C语言实现
- 一个简单的HashMap C语言实现
- BloomFilter的一个简单实现(C语言)
- C语言实现一个简单的计算器
- 【C++】一个简单栈的实现
- 一个简单定时器的实现(C++)
- 【C语言】实现一个简单的通讯录
- 一个简单C顺序栈的实现
- 一个简单定时器的实现(C++)
- C语言实现一个简单的栈
- Nand Flash and Nor flash
- 在安卓中获取一个城市的天气情况
- jquery uploadify插件
- 利用dex2jar和jd-gui反编译apk文件,得到其源代码!!
- lua面向对象编程之点号与冒号的差异详细比较
- 用C实现一个简单的泛型
- 自己写java.lang.String
- java上机 第十二周 任务一
- 编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔
- 祝贺自己的CSDN博客,开博一年访问量就突破4万次;单篇博文最高访问量超过1万次
- jquery uploadify 3.2
- 用java实现二叉树
- 北京地图矢量数据下载
- java经典题目_数字组合