use a macro to implement a “template” for a double-ended queue container, known as a deque, in C.