Projekte
workwind
Multitasking 1
cdll.h
Projekte
Forum
Doku
Öffentliche Projekte
Startseite
Beispielprogramme
Projekte von anderen
Welcome
Username
Passwort
Eingeloggt bleiben
Zugangsdaten vergessen?
Registrieren
Projektverwaltung
⇨ Please choose! ⇦
——————————————————
✎ Create new project...
★ Browse existing projects...
——————————————————
⚬ MotorTest#1
⚬ C Tutorial 8#1
⚬ NIBO2 C Project#1
⚙ C Tutorial 15#1
⚬ 2010_11_18_el_test001#1
Multitasking 1
cdll.c
cdll.h
main.c
scheduler.S
thread.c
thread.h
Project details
Compiler settings
Nachrichten
Sie sind nicht eingeloggt.
Neuigkeiten
★
NiboRoboLib 3.6
2017-01-17: Neue Version 3.6
★
NiboRoboLib 3.4.1
2016-04-16: Neue Version 3.4.1
★
Coding Tutorial
2015-11-22: Jetzt auch für den NIBO burger!
Site-Statistic
7432 private projects
378 public projects
16179195 lines compiled
58194 builds
NIBO
@
multitasking_1/cdll.h [read only]
#ifndef CDLL_H #define CDLL_H #include <stdbool.h> typedef struct _cdll_s { struct _cdll_s * prev; struct _cdll_s * next; } cdll_t; /** * Listenkopf der CDLL initialisieren * Muss vor der ersten Verwendung einer CDLL-Liste aufgerufen werden! */ void cdll_reset(cdll_t *head); /** * Prüft ob die CDLL-Liste leer ist (also nur aus dem Kopf besteht) */ static inline bool cdll_is_empty(cdll_t *head); /** * Ein Element dem Anfang der CDLL hinzufügen */ void cdll_push_front(cdll_t * head, cdll_t * entry); /** * Ein Element dem Ende der CDLL hinzufügen */ void cdll_push_back(cdll_t * head, cdll_t * entry); /** * Ein Element aus einer beliebigen CDLL entfernen und an den Anfang der übergebenen CDLL setzen */ void cdll_move_front(cdll_t * head, cdll_t * entry); /** * Ein Element aus einer beliebigen CDLL entfernen und an das Ende der übergebenen CDLL setzen */ void cdll_move_back(cdll_t * head, cdll_t * entry); /** * Das erste Element der CDLL entfernen und zurückliefern * Liefert 0 zurück wenn die Liste leer ist */ cdll_t * cdll_pop_front(cdll_t * head); /** * Das letzte Element der CDLL entfernen und zurückliefern * Liefert 0 zurück wenn die Liste leer ist */ cdll_t * cdll_pop_back(cdll_t * head); /** * Dieses Element aus seiner Liste entfernen */ void cdll_remove(cdll_t * entry); /** * Prüfen ob dieses Element in der Liste enthalten ist */ bool cdll_contains(cdll_t * head, cdll_t * entry); /** * Das erste Element der CDLL zurückliefern * Liefert 0 zurück wenn die Liste leer ist */ static inline cdll_t * cdll_peek_front(cdll_t * head); /** * Das letzte Element der CDLL zurückliefern * Liefert 0 zurück wenn die Liste leer ist */ static inline cdll_t * cdll_peek_back(cdll_t * head); /* *** INLINE IMPLEMENTATIONS *** */ static inline bool cdll_is_empty(cdll_t *head) { // assert (head!=0) // (wenn head->next==head dann ist auch head->prev==head !!) return head->next==head; } static inline cdll_t * cdll_peek_front(cdll_t * head) { // assert (head!=0) if (head->next==head) { return (cdll_t *) 0; } return head->next; } static inline cdll_t * cdll_peek_back(cdll_t * head) { // assert (head!=0) if (head->prev==head) { return (cdll_t *) 0; } return head->prev; } #endif
Compiler results:
Werbung
Online
aileenschumacher702
asamarrone44201
KylieSat
lashondacolmenero447
maxieqjv952917214
warrenhinder6456