fla*_*ica 3 c arrays sorting macros generic-programming
我正在尝试编写一个通用函数来排序不同类型的数据.我的代码是:
#include<stdio.h>
#define GENERIC_SORT(TYPE) \
TYPE ##_SORT(TYPE a[],int n) \
{ \
int i,j; \
TYPE aux; \
for(i=1;i<n;i++) \
for(j=n-1;j>=i;j--) \
if(a[j]<a[j-1]) \
{ \
aux=a[j]; \
a[j]=a[j-1]; \
a[j-1]=aux; \
} \
}
GENERIC_SORT(int)
GENERIC_SORT(float)
GENERIC_SORT(double)
GENERIC_SORT(char)
int main(void)
{
int i,a[]={3,7,5,4,6,1};
int_SORT(a,6);
for(i=0;i<6;i++)
printf("%d ",a[i]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我正在准备考试,在课程中有一个例子GENERIC_MAX,它找到2个值之间的最大值.而且我应该像这样做...
它的工作原理罚款int,float,double和char.但是如何使用它来对字符串数组(char a[][100]或char *a[])进行排序?
泛型排序的一个主要示例是C运行时库qsort().其最通用的属性之一是它使用作为参数传递的"比较函数".
为什么不采用这种策略?虽然大多数比较函数确实是微不足道的,但在访问对象的情况下,它对于解释对象内部的内容是非常宝贵的.
| 归档时间: |
|
| 查看次数: |
1615 次 |
| 最近记录: |