C语言中的MACRO宏的用法解决方法
C语言中的MACRO宏的用法本人在写一个struct的链表类型结构的排序程序,遇到了一下疑惑我的struct结构如下:[
C语言中的MACRO宏的用法
本人在写一个struct的链表类型结构的排序程序,遇到了一下疑惑
我的struct结构如下:
[解决办法]宏在这里不行的!在预编译器就已经替换了的!
这里最好用联合体,动态的决定用那个!完全没有必要定义三个!
[解决办法]你还不如这样:
struct test
{
int data[3];
struct test* next;
};
[解决办法]比较函数传递一个index 参数就可以了。
这样,很多库函数,就不能直接用了。
不过,C链表也没有库函数,可以排序;
所以直接写个用三参数比较的排序函数就行了,
比较用三参数比较,两个节点一个索引。
排序多传递一个,索引值参数,就行了。
[解决办法]你准备一个数组装3个函数指针,指定0,1,2作为下标,然后去比较不就是了,运行期的问题怎么还整出个宏来。
typedef int (*compare_function)(struct test *l, struct test *r);
compare_function funcs[3];