本人在写一个struct的链表类型结构的排序程序,遇到了一下疑惑
我的struct结构如下:
struct test{
int a;
int b;
int c;
struct test *next;
}
typedef struct test Test
int main(void){
Test myStruct;
}
此时我希望给用户一个选择,如果输入0就通过比较a成员来排序,如果输入1就通过比较b成员来排序,如果输入2就通过比较c成员来排序
目前我的方法是比较麻烦的写了三个不同的比较function,然后做成函数指针
每个函数分别三个不同的成员变量之差
小弟想问的是没有没方法能给根据条件来#define OBJECT
如果用户输入0 就#define OBJECT a
输入1 就 #define OBJECT b
输入2 就 #define OBJECT c
这样就只需要写一个比较function,return ( (myStruct->OBJECT) - (myStruct->OBJECT) ) 就好了