typedef struct
{
int ee;
} test
Проблема з typedef struct в *.h
При использовании в *.h файле
typedef struct
{
int ee;
} test
при компиляции ошибка
field2n.h(33) : error C2371: 'test' : redefinition; different basic types
Сделал так ка пишет Microsoft
typedef struct mystruct
{
int ee;
} test;
но и это не помоголо, другая ошибка
field2n.h(31) : error C2011: 'mystruct' : 'struct' type redefinition
Если использовать первый или второй вариант прямо в *.cpp все работает.
Может кто стыкался с такой проблемой....
struct mystruct {
int test;
};
и усё
Пользуй codeguard-ы.
В простейшем случае пиши в начале заголовочного файла
[COLOR=BLUE]
#pragma once
[/COLOR]
Если хочешь более стандартный код, то пиши в начале
[COLOR=BLUE]
#ifndef MY_HEADR_FILE_H // можешь написать любой уникальный макрос
#define MY_HEADR_FILE_H
[/COLOR]
а в конце файла
[COLOR=BLUE]
#endif // MY_HEADR_FILE_H
[/COLOR]
Цитата:
Да ошибка проста: ты дважды включаешь один и тот же заголовочный файл (явно или косвенно) в одну единицу компиляции.
Пользуй codeguard-ы.
В простейшем случае пиши в начале заголовочного файла
[COLOR=blue]
#pragma once
[/COLOR]
Если хочешь более стандартный код, то пиши в начале
[COLOR=blue]
#ifndef MY_HEADR_FILE_H // можешь написать любой уникальный макрос
#define MY_HEADR_FILE_H
[/COLOR]
а в конце файла
[COLOR=blue]
#endif // MY_HEADR_FILE_H[/COLOR]
Пользуй codeguard-ы.
В простейшем случае пиши в начале заголовочного файла
[COLOR=blue]
#pragma once
[/COLOR]
Если хочешь более стандартный код, то пиши в начале
[COLOR=blue]
#ifndef MY_HEADR_FILE_H // можешь написать любой уникальный макрос
#define MY_HEADR_FILE_H
[/COLOR]
а в конце файла
[COLOR=blue]
#endif // MY_HEADR_FILE_H[/COLOR]
Факт если он действительно использует свой хедер в нескольких файлах проекта:)
Код:
[SIZE=2][COLOR=#0000ff]
int[/COLOR][/SIZE][SIZE=2] [COLOR=black]text[/COLOR][COLOR=black];[/COLOR][COLOR=yellowgreen]//где то в другом файле на который ссылается этот хедер[/COLOR]
[/SIZE][SIZE=2][COLOR=#0000ff][COLOR=yellowgreen]//это в его хедере и он включает выше описанный файл[/COLOR]
struct[/COLOR][/SIZE][SIZE=2] [COLOR=black]mystruct[/COLOR]
{
[/SIZE][SIZE=2][COLOR=#0000ff]
int[/COLOR][/SIZE][SIZE=2] [COLOR=black]ee[/COLOR][COLOR=black];[/COLOR]
}[COLOR=black]text;[/COLOR]
[/SIZE]
int[/COLOR][/SIZE][SIZE=2] [COLOR=black]text[/COLOR][COLOR=black];[/COLOR][COLOR=yellowgreen]//где то в другом файле на который ссылается этот хедер[/COLOR]
[/SIZE][SIZE=2][COLOR=#0000ff][COLOR=yellowgreen]//это в его хедере и он включает выше описанный файл[/COLOR]
struct[/COLOR][/SIZE][SIZE=2] [COLOR=black]mystruct[/COLOR]
{
[/SIZE][SIZE=2][COLOR=#0000ff]
int[/COLOR][/SIZE][SIZE=2] [COLOR=black]ee[/COLOR][COLOR=black];[/COLOR]
}[COLOR=black]text;[/COLOR]
[/SIZE]
[COLOR=black]будет такаяже ошибка "redifinition"(то есть компилятор говорит что переменная с таким именем уже эсть)[/COLOR][/COLOR][/SIZE][SIZE=2]
[/SIZE]