Это менее распространенный вариант использования ключевого слова typedef
, который позволяет определять два или более псевдонимов типа в одной строке.Здесь говорится, что
- создает псевдоним с именем
A
, который представляет собой struct
, а - создает псевдоним с именем
B
, который представляет указатель на struct
.
В этом смысле это похоже на запись чего-то вроде
int A, *B;
Здесь это объявляет целое число с именем A
и указатель на целое число с именем B
,Синтаксис, включающий *
, работает очень похоже на то, что происходит в операторе typedef
, за исключением того, что вместо введения переменных он вводит типы.
Другой способ убедиться в этом: это эквивалентно разрушению вещейза исключением двух отдельных операторов:
typedef struct {
...
} A;
typedef A* B;
Здесь первое говорит: «A
теперь относится к этому типу struct
, а B
теперь относится к указателю на A
».