Просмотр замены typedef - PullRequest
       4

Просмотр замены typedef

0 голосов
/ 22 сентября 2011

Может кто-нибудь сказать мне, как я могу увидеть строку замены typedef. На самом деле мы могли видеть замену препроцессора, используя cc -E filename.c. Вот так я хочу увидеть замену typedef.

Ответы [ 2 ]

2 голосов
/ 22 сентября 2011

Это (а также -E) зависит от используемого вами компилятора.

Тем не менее, я сомневаюсь, что это возможно с любым компилятором.В отличие от макросов, typedefs - это не просто текстовые замены.

Обратите также внимание, что выходные данные потенциальной программы расширения typedef не обязательно являются допустимым кодом C, например, экземпляры с той же структурой станут несовместимыми.

1 голос
/ 22 сентября 2011

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

...