Курсовая работа: Особливості мови програмування С
b=temp;
}
void memswap(char* a, char* b, size_t sz) {
for (int k=0; k<sz; k++)
swap(*a++,*b++);
}
void ssort(void* base, size_t n, size_t sz, CMP cmp)
{
for (int i=1; i<n; i++)
for (int j=n-1; j>=i; j--)
{
char* bj=(char*)base + j*sz;
if (cmp(bj,bj-sz))
memswap(bj,bj-sz,sz);}}
struct database
{
char* name;
int age;
};
int less_int(const void* p,const void* q)
{ return *(int*)p<*(int*)q; }
int greater_int(const void* p,const void* q)
{ return *(int*)p>*(int*)q; }
int less_str(const void* p,const void* q)
{ return strcmp(*(char**)p,*(char**)q)<0; }
int less_age(const void* p,const void* q)
{ return ((database*)p)->age<((database*)q)->age; }
int less_name(const void* p,const void* q)
{ return strcmp(((database*)p)->name,