📄 jwl-gtf_udh.h
字号:
/********************************************************************************************************
* JWL-GTF *
* 实时多任务操作系统 *
* *
* 作者:JWL-GTF *
* 日期:2004/04/19 *
* 修改日期: *
* *
* 功能说明:基本的头文件定义 *
*********************************************************************************************************/
/*公共头*/
#include "JWL-GTF.H"
/*公用链表结构*/
typedef struct
{
jwl_gtf_List* Pre; /*前一指针*/
jwl_gtf_List* Next; /*后一指针*/
}jwl_gtf_List;
/*宏定义空结构初始化*/
#define _jwl_gtf_BuildFreeLinkInit(a,b) \ /*a:Task,b:jwl_gtf_MaxTask+jwl_gtf_FreeTask*/
jwl_gtf_void jwl_gtf_##a##FreeInit()\
{\
int i=0;\
jwl_gtf_##a##Free=jwl_gtf_##a;\
jwl_gtf_##a##[0].jwl_gtf_Link->Pre=jwl_gtf_##a##Free;\
jwl_gtf_##a##[0].jwl_gtf_Link->Next=jwl_gtf_##a##[++i];\
for(;i<##b;)\
{\
jwl_gtf_##a##[i].jwl_gtf_Link->Pre=jwl_gtf_##a##[i-1];\
jwl_gtf_##a##[i].jwl_gtf_Link->Next=jwl_gtf_##a##[++i];\
}\
jwl_gtf_##a##[i]->jwl_gtf_Link->Pre=jwl_gtf_##a##[i-1];\
jwl_gtf_##a##[i]->jwl_gtf_link->Next=jwl_gtf_NULL;\
return;\
}\
/*宏定义插入某一链表头中*/
/*a为链表头,b为要插入的指针,c为链表连接指针名称,d为链表类型,e链表类型*/
#define _jwl_gtf_BuildInsertLinkHead(c,e) \
jwl_gtf_void jwl_gtf_Insert##c##Head(e *a,e *b)\
{\
if(a==jwl_gtf_NULL)\ /*链表头中为空*/
{\
a=b;\
b->jwl_gtf_##c##->Next=jwl_gtf_NULL;\
b->jwl_gtf_##c##->pre=a\
}\
else\ /*否则*/
{\
b->jwl_gtf_##c##->Next=a;\
a->jwl_gtf_##c##->Pre=b ;\
a=b;\
b->jwl_gtf_##c##->Pre=a;
}\
reutrn;\
}
/*宏定义插入某一链表尾或中间*/
/*a:要插入的链表指针b:被插入的链表指针c:为链表指针的名称d:链表类型e:链表类型*/
#define _jwl_gtf_BuildInsertTail(c,e) \
jwl_gtf_void jwl_gtf_Insert##c##Tail(e * a,e *b)\
{\
if(a->jwl_gtf_##c##->Next==jwl_gtf_NULL)\ /*是否链表中最后一个*/
{\
a->jwl_gtf_##c##->Next=b;\
b->jwl_gtf_##c##->Pre=a;\
b->jwl_gtf_##c##->Next=jwl_gtf_NULL;
}\
else\ /*不是链表中最后一个*/
{\
b->jwl_gtf_##c##->Next->jwl_gtf_##c##->Pre=a;
a->jwl_gtf_##c##->Next=b->jwl_gtf_##c##->Next;
b->jwl_gtf_##c##->Next=a;
a->jwl_gtf_##c##->Pre=b;
}\
return;\
}
/*宏定义从链表中断开头指针*/
/*a为链表头,c为链表连接指针名称,d为链表类型,e链表类型*/
#define _jwl_gtf_BuildDeleteLinkHead(c,e) \
jwl_gtf_void jwl_gtf_Delete##c##Head(e *a)\
{\
if(a->jwl_gtf_##c##->Next==jwl_gtf_NULL)\ /*链表中是否只有1个*/
a=jwl_gtf_NULL;\
else\
{\
a=a->jwl_gtf_###c#->Next;\
a->jwl_gtf_##c##->Pre=a;\
}\
return;\
}\
/*宏定义断开链表中指针*/
/*a为链表头,c为链表连接指针名称,d为链表类型,e链表类型*/
#define _jwl_gtf_BuildDeleteLinkTail(c,e) \
jwl_gtf_void jwl_gtf_Delete##c(e *a) \
{\
##e *next,*pre;\
if(a->jwl_gtf_##c##->Next==jwl_gtf_NULL)
a->jwl_gtf_##c##->Pre->jwl_gtf_##c##->Next=jwl_gtf_NULL;\
else\
{\
pre=a->jwl_gtf_##c##->Pre;\
next=a->jwl_gtf_##c##->Next;\
pre->jwl_gtf_##c##->Next=next;\
next->jwl_gtf_##c##->Pre=pre;\
}\
return;\
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -