Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2013, 00:57   #1
andreil
Пользователь
 
Регистрация: 19.12.2011
Сообщений: 28
По умолчанию Недоступность поля структуры

В одном заголовке имеется следующая запись:
Код:
class Game;
class Interface;
class FS;
class Settings;
class ScriptEngine;
class Sound;

typedef struct
{
    Game        *game;
    Interface   *interface;
    FS          *fs;
    Settings    *settings;
    ScriptEngine*engine;
    Sound       *sound;
} global_t;

extern global_t global;
В одном из исходников объявлена данная переменная:
Код:
global_t global;
При любой попытке доступа к полю global_t::interface ругается компилятор:
Код:
F:\Projects (C++)\SD\SD\game.cpp||In constructor 'Game::Game()':|
F:\Projects (C++)\SD\SD\game.cpp|21|error: expected unqualified-id before 'struct'|
F:\Projects (C++)\SD\SD\game.cpp|21|error: expected ';' before 'struct'|
и т.д. Если это поле закомментировать, то ошибка остается прежней =-O При этом на другие поля реакция нормальная...

Под Linux'ом данный код компилируется на "УРА!", а под Windows - такой косяк Поэтому никак и не могу понять, в чем-же косяк. Отличие только в компиляторах - GCC 4.8.0 и MinGW (на GCC 4.7.1).

В аттаче - проект Code::Blocks. Для попытки компиляции нужны заголовки OpenAL, Vorbis и OGG, находящиеся в другом вложении (по дефолту их нету же )
Вложения
Тип файла: zip SD.ZIP (25.1 Кб, 6 просмотров)
Тип файла: zip include.zip (31.8 Кб, 6 просмотров)
andreil вне форума Ответить с цитированием
Старый 14.12.2013, 11:06   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Если пороетесь в заголовочных файлах винды, найдете чтото вроде:
#define interface struct...

Переименуйте переменную interface на что нибудь другое.
waleri вне форума Ответить с цитированием
Старый 14.12.2013, 11:30   #3
andreil
Пользователь
 
Регистрация: 19.12.2011
Сообщений: 28
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Если пороетесь в заголовочных файлах винды, найдете чтото вроде:
#define interface struct...

Переименуйте переменную interface на что нибудь другое.
Спасибо за помощь Сама среда на поиски объявлений ругается - "Not found" и хоть тресни
andreil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка поля структуры на уникальность Mycroft Общие вопросы C/C++ 6 20.03.2013 17:39
поясните смысл объявления поля структуры veniside Общие вопросы C/C++ 15 02.06.2011 02:58
Удаление(добавление) поля из(в) структуры kilgoreq Помощь студентам 0 22.02.2011 00:59
почему не правильно заполняет поля структуры ... ??? MichaelRED Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 09.06.2010 17:49