#define T Stack_T typedef struct T *T;
Then what does T in struct T mean,the one defined by #define or
T
struct T
#define
The T represents Stack_T so, you can read the typedef as:
Stack_T
typdef struct Stack_T *Stack_T;
so every T in your code is replaced as Stack_T during compiler compilation.