首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-12-19 
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];

热点排行