cmake_demo/main.c
2023-12-21 16:40:16 +08:00

105 lines
1.7 KiB
C

#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct list_t
{
uint8_t data;
struct list_t *next;
} list_t;
void list_init(struct list_t *list)
{
list->data = 0;
list->next = NULL;
}
void list_add(struct list_t *list, uint8_t data)
{
struct list_t *p = NULL;
p = list;
while (p->next != NULL)
{
p = p->next;
if (p->data == data)
{
return;
}
}
p->next = (struct list_t *)malloc(sizeof(struct list_t));
p->next->data = data;
p->next->next = NULL;
return;
}
void list_print(struct list_t *list)
{
struct list_t *p = NULL;
p = list;
while (p->next != NULL)
{
printf("%02d\n", p->data);
p = p->next;
if (p->next == NULL)
{
printf("%02d\n", p->data);
break;
}
}
}
void list_free(struct list_t *list)
{
struct list_t *p = NULL;
p = list;
while (p->next != NULL)
{
p = p->next;
free(p->next);
p->next = NULL;
if (p->next == NULL)
{
break;
}
}
}
void list_demo(void)
{
struct list_t list;
list_init(&list);
for(uint32_t i = 0; i < 10; ++i)
{
list_add(&list, i);
}
list_print(&list);
}
void main(int arg, char *argv[])
{
#if 0
uint32_t i = 0;
for (i = 0; i < 10; ++i)
{
printf("%02d\n", i);
}
printf("\n");
printf("Hello World!\n");
#else
// struct list_t list;
// list_init(&list);
// list_add(&list, 1);
// list_add(&list, 2);
// list_add(&list, 3);
// list_add(&list, 4);
// list_print(&list);
list_demo();
#endif
}