Я могу воспроизвести это с помощью простой программы
typedef int A = 3;
typedef
объявляет псевдоним для типа; он не объявляет переменную. Поэтому, если вам нужен экземпляр struct my_struct
с именем A
, вы также не можете иметь typedef struct my_struct { ... } my_struct
в том же объявлении.