读书人

C语言中的MACRO宏的用法解决方法

发布时间: 2013-12-19 00:33:34 作者: rapoo

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];

读书人网 >C语言

热点推荐