Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > структуры


Автор: Reptor 7.10.2008, 12:41
есть такие вот 3 структуры и вот такие ошибки 

error C2143: syntax error : missing ';' before '*'
 error C2501: 'SIGN' : missing storage-class or type specifiers
 error C2501: 'sign' : missing storage-class or type specifiers
 error C2011: 'tagPOINTS' : 'struct' type redefinition

не понимаю из за чего они

Код

typedef struct tagCROSSROAD
{
    POINTS* point;
    SIGN* sign;      // error C2143: syntax error : missing ';' before '*'
} CROSSROAD;


typedef struct tagPOINTS
{
  float x,y;
} POINTS;

typedef struct tagSIGN
{
    float x,y;
    bool  trafficLight;
} SIGN;



Автор: bsa 7.10.2008, 12:46
Вот эту структуру помести после определения POINTS и SIGN:
Код
typedef struct tagCROSSROAD
{
    POINTS* point;
    SIGN* sign;      // error C2143: syntax error : missing ';' before '*'
} CROSSROAD;

Автор: Reptor 7.10.2008, 12:49
bsa, да понял. Нормально. Но всеровно остайтся  error C2011: 'tagPOINTS' : 'struct' type redefinition

Автор: azesmcar 7.10.2008, 13:42
у меня нормально компилируется

Код

typedef struct tagPOINTS
{
  float x,y;
} POINTS;

typedef struct tagSIGN
{
    float x,y;
    bool  trafficLight;
} SIGN;

typedef struct tagCROSSROAD
{
    POINTS* point;
    SIGN* sign;
} CROSSROAD;


компилер ругается 4то где-то еще обьявлена структура tagPOINTS

а по4ему бы не так?

Код

typedef struct
{
  float x,y;
} POINTS;

typedef struct
{
    float x,y;
    bool  trafficLight;
} SIGN;

typedef struct
{
    POINTS* point;
    SIGN* sign;
} CROSSROAD;


Автор: Reptor 7.10.2008, 14:16
azesmcar, да переименовал в 2-уое название... заработало... Хотя не понятно где ещё такая была smile 

Автор: azesmcar 7.10.2008, 14:45
right click - goto definition, посмотришь где обьявлено

Автор: nk19 19.10.2008, 16:57
Из-за двойного включения заголовочного файла redefinition может быть. Но переименование не помогло бы.

Автор: eyeofhell 19.10.2008, 19:33
tagPOINTS объявляется в Windows.h

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)