C2061
От: algama  
Дата: 08.11.06 10:06
Оценка:
есть код:
35: struct my_block
36: {
37:     my_block  *p_next;
38:     my_block  *p_prev;
39:     int       i_flags;
40: };

и как результат, при компиляции ошибка.
error C2061: syntax error : identifier 'my_block' d:\temp\include\my_block.h 37

Есть мысли как это компилить?
Re: C2061
От: denaturat  
Дата: 08.11.06 10:15
Оценка:
Здравствуйте, algama, Вы писали:

A>есть код:

A>
A>35: struct my_block
A>36: {
A>37:     my_block  *p_next;
A>38:     my_block  *p_prev;
A>39:     int       i_flags;
A>40: };
A>

A>и как результат, при компиляции ошибка.
A>error C2061: syntax error : identifier 'my_block' d:\temp\include\my_block.h 37

A>Есть мысли как это компилить?


Все нормально компилиться должно. Посмотри, что у тебя в коде выше этого места.
Re: C2061
От: Crackjack Россия  
Дата: 08.11.06 10:24
Оценка:
Здравствуйте, algama, Вы писали:

A>есть код:

A>
A>35: struct my_block
A>36: {
A>37:     my_block  *p_next;
A>38:     my_block  *p_prev;
A>39:     int       i_flags;
A>40: };
A>

A>и как результат, при компиляции ошибка.
A>error C2061: syntax error : identifier 'my_block' d:\temp\include\my_block.h 37

A>Есть мысли как это компилить?


struct my_block
{
     struct my_block  *p_next;
     struct my_block  *p_prev;
     int       i_flags;
};


или вот так ещё компилится

typedef struct __my_block MYBLOCK;

typedef struct __my_block
{
     MYBLOCK  *p_next;
     MYBLOCK  *p_prev;
     int       i_flags;
}MYBLOCK;
Re: C2061
От: Андрей Тарасевич Беларусь  
Дата: 08.11.06 20:23
Оценка:
Здравствуйте, algama, Вы писали:

A>есть код:

A>
A>35: struct my_block
A>36: {
A>37:     my_block  *p_next;
A>38:     my_block  *p_prev;
A>39:     int       i_flags;
A>40: };
A>

A>и как результат, при компиляции ошибка.
A>error C2061: syntax error : identifier 'my_block' d:\temp\include\my_block.h 37

A>Есть мысли как это компилить?


Какой язык?

В С++ это должно компилиться в оригинальном варианте. Отсюда я делаю вывод, что ты пытаешься компилить это именно как С код. В С это действительно компилиться не должно. Можно либо

struct my_block
{
  struct my_block  *p_next;
  struct my_block  *p_prev;
  int       i_flags;
};


либо

typedef struct my_block my_block;

struct my_block
{
  my_block  *p_next;
  my_block  *p_prev;
  int       i_flags;
};


Если твой заголовочный файл предназначен для компиляции как в С коде, так и в С++ коде, то эти два варианта также легальны и в С++.
Best regards,
Андрей Тарасевич
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.