Форум программистов, компьютерный форум CyberForum.ru

Недоступность поля структуры - C++

Войти
Регистрация
Восстановить пароль
 
andreil
0 / 0 / 0
Регистрация: 09.12.2012
Сообщений: 11
13.12.2013, 21:28     Недоступность поля структуры #1
В одном заголовке имеется следующая запись:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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;
В одном из исходников объявлена данная переменная:
C++
1
global_t global;
При любой попытке доступа к полю global_t::interface ругается компилятор:
C++
1
2
3
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'|
и т.д. Если это поле закомментировать, то ошибка остается прежней При этом на другие поля реакция нормальная...

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

В аттаче - проект Code::Blocks. Для попытки компиляции нужны заголовки OpenAL, Vorbis и OGG, находящиеся в другом вложении (по дефолту их нету же )
Вложения
Тип файла: zip SD.ZIP (25.1 Кб, 4 просмотров)
Тип файла: zip include.zip (31.8 Кб, 2 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mytilus
82 / 82 / 8
Регистрация: 04.10.2012
Сообщений: 329
14.12.2013, 19:26     Недоступность поля структуры #2
interface - зарезервированное слово. Используй другое.
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
16.12.2013, 15:10     Недоступность поля структуры #3
Цитата Сообщение от mytilus Посмотреть сообщение
interface - зарезервированное слово.
В C++ нет такого зарезервированного слова. В каком-нибудь C++/CLI возможно. Вместе с abstract.
andreil
0 / 0 / 0
Регистрация: 09.12.2012
Сообщений: 11
16.12.2013, 15:38  [ТС]     Недоступность поля структуры #4
Tulosba, В Windows - зарезервированно:
Если пороетесь в заголовочных файлах винды, найдете чтото вроде:
#define interface struct...
В Linux такой беды нету
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
16.12.2013, 16:03     Недоступность поля структуры #5
Цитата Сообщение от andreil Посмотреть сообщение
В Windows - зарезервированно:
Не надо иклюдить всякую дрянь
andreil
0 / 0 / 0
Регистрация: 09.12.2012
Сообщений: 11
16.12.2013, 16:38  [ТС]     Недоступность поля структуры #6
Tulosba, в том-то и дело, что только stdio, stdlib, да windows.h. остальное - OpenGL, Vorbis, OpenAL - и этого не требует
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2013, 17:08     Недоступность поля структуры
Еще ссылки по теме:

C++ Обьеденить два поля структуры
Поиск и замена поля структуры в файле C++
Поля структуры внутри класса C++
C++ Шаблон функции, использующий поля структуры
Запись поля структуры в файл C++ Builder

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
16.12.2013, 17:08     Недоступность поля структуры #7
Цитата Сообщение от andreil Посмотреть сообщение
да windows.h
Уберите его нафиг. Там нелепые дефайны и прописаны.
Yandex
Объявления
16.12.2013, 17:08     Недоступность поля структуры
Ответ Создать тему
Опции темы

Текущее время: 17:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru