typedef struct Element
{
struct Element *next;
void *data;
} Element;
В функции pop, что означает линия (! (Elem = * stack))?C - Связанный список: Что означает (! Elem) и (! (Elem = * stack)) в следующем коде?
bool pop(Element **stack, void **data)
{
Element *elem;
if (!(elem = *stack)) return false;
*data = elem->data;
*stack = elem->next;
delete elem;
return true;
}
В функции push, что означает линия (! Elem)?
bool push(Element **stack, void *data)
{
Element *elem = new Element;
if(!elem) return false;
elem->data = data;
elem->next = *stack;
*stack = elem;
return true;
}
Это означает, если * stack равен 0, верните false. В функции push это означает, что elem равен 0, то есть не создан. – cup