typedefs не являются макросами.
-E - это этап препроцессора при компиляции, и вы сможете видеть только замены MACRO.
#define A int *
typedef int *B;
Теперь это означает, что везде, где появляется «A», он будет заменен на 'int *' - замена простой строки
Однако B является синонимом слова 'int *'
Так что, когда я набираю:
A c, d;
B e, f;
-EЭтап покажет вам, что произошла следующая замена:
int *c, d;
B e, f;
Итак:
c имеет тип 'int *'
d имеет тип 'int'
e относится к типу B (синонимично тому, что e имеет тип 'int *')
f относится к типу B (синонимично к тому, что f имеет тип 'int *')
HTH