#include "pp.h"
Go to the source code of this file.
Defines | |
#define | LIFO_decl(type, count, label) |
Declare a LIFO. | |
#define | LIFO_extern(type, count, label) |
Make a global LIFO available elsewhere. | |
#define | LIFO_init(type, ilabel) ( ppConcat(ilabel,_sp) = ilabel ) |
Initialize a declared LIFO If it was declared as part of a compound, the indirection to that compound is also reqiured as part of ilabel. | |
#define | LIFO_auto(type, count, ilabel) |
Declare a LIFO as a global or on the stack. | |
#define | LIFO_empty(type, ilabel) ( ppConcat(ilabel,_sp) == ilabel ) |
Tell us if a LIFO is empty, and therefore that LIFO_pop is invalid. | |
#define | LIFO_full(type, ilabel) ( ppConcat(ilabel,_sp) == (type*)((char*)ilabel+sizeof(ilabel)) ) |
Tell us if a LIFO is full, and therefore that LIFO_add is invalid. | |
#define | LIFO_back(type, ilabel) ( ppConcat(ilabel,_sp) ) |
Get a pointer to where next add will add a member Useful for where you want to get a pointer to where data would be added so it can be initialized in place before invoking LIFO_add. You should check LIFO64K_empty before doing this. | |
#define | LIFO_front(type, ilabel) ( ppConcat(ilabel,_sp)-1 ) |
Get a pointer to who will be next to be popped without popping it You should check LIFO64K_empty before doing this. | |
#define | LIFO_push(type, ilabel) ( ppConcat(ilabel,_sp)++ ) |
Add a new value to the LIFO queue You should check LIFO_full before doing this, maybe in a debug assertion. | |
#define | LIFO_pop(type, ilabel) ( --ppConcat(ilabel,_sp) ) |
Pop the oldest value off the queue You should check LIFO_empty before doing this. |
Definition in file lifo.h.