#include <stdio.h>
typedef struct _ListNode
{
uint8_t flag;
void (*callback)(void);
struct _ListNode* next;
}ListNode;
static ListNode* head_handle = NULL;
void List_init(ListNode* handle, void(*callback)(void))
{
handle->callback = callback;
handle->flag = 0x00;
InsertNodeToTail(handle);
}
void InsertNodeToTail(ListNode* handle)
{
ListNode* target = head_handle;
if(head_handle == NULL)
{
head_handle = handle;
handle->next = NULL;
}
else
{
while(target->next != NULL)
{
if(target == handle)
{
break;
}
target = target->next;
}
target->next = handle;
handle->next = NULL;
}
}
void RemoveNode(ListNode *needDeleteNode)
{
ListNode *target = head_handle;
while(target)
{
if(target == needDeleteNode)
{
target->next = needDeleteNode->next;
return;
}
else
{
target = target->next;
}
}
}
void List_Handle(void)
{
ListNode* target = head_handle;
while(target != NULL)
{
target->callback();
target = target->next;
}
}
int main () {
printf("Hello world! - c.jsrun.net.");
return 0;
}