342 / 197 / 52
Регистрация: 18.10.2017
Сообщений: 1,938
|
||||||||||||||||
1 | ||||||||||||||||
Взаимозависимые структуры31.10.2017, 13:02. Показов 757. Ответов 2
Метки нет (Все метки)
Здравствуйте!
Я столкнулся с новой для меня ситуацией, связанной с различием gcc и g++. Мне требуется несколько утилит из пакета Debian перенести в программу на C++ с некоторой модернизацией, но пока пытаюсь только скомпилировать их с помощью g++. Проблема в том, что есть некий c-файл и в нем объявления объектов структур разных типов, в 1-й должен быть адрес 2-й, а во 2-й - адрес 1-й, т.е. объектов этих типов. Ещё есть h-файл с определениями этих структур:
Если этот файл компилировать gcc, то компиляция проходит, мне требуется только объектный файл. A g++ жалуется на переопределение как на ошибку. Если перенести в начало c-файла объявление
Я пока не нашёл опций, чтобы можно было указать g++ делать два проходa или режим совместимости с C, а то, что я пробовал, не помогло. В этом c-файле только объявления, в т.ч. нескольких функций, main() там нет и вводить новую функцию для заполнения полей очень бы не хотелось. М.б., есть какой-то другой вариант решения этой проблемы?
0
|
31.10.2017, 13:02 | |
Ответы с готовыми решениями:
2
Взаимозависимые дженерики Функция от функции (взаимозависимые функции) Помещение структуры в вектор, удаление структуры, изменение элементов структуры Функция внутри структуры использует указатель, как поле этой структуры |
1241 / 960 / 379
Регистрация: 02.09.2012
Сообщений: 2,936
|
|
01.11.2017, 00:25 | 2 |
У вас циклические зависимости при определении переменных. Такое в C++ не работает в соответствии со стандартом
Добавлено через 7 минут Добавлю. Почему такое работает в C? Это скорее описывается этим положением стандарта (уже языка C)
0
|
342 / 197 / 52
Регистрация: 18.10.2017
Сообщений: 1,938
|
|
01.11.2017, 09:05 [ТС] | 3 |
grgdvo,Благодарю за подробный ответ. Я уже вставил назначение этого поля в obj_1
в исполнимый код. В моём случае это оказалось просто, т.к. эта obj_1 используется через функцию, которая возвращает указатель на неё, вот в неё я и поместил установку этого поля.
0
|
01.11.2017, 09:05 | |
01.11.2017, 09:05 | |
Помогаю со студенческими работами здесь
3
Динамические структуры данных. Программа ввода в структуры и вывода информации из неё. Динамическое изменение структуры таблицы для организации древовиднойой структуры Структуры, массивы структур (как можно присваивать(инициализировать) значения полям структуры) Динамические структуры данных, списковые структуры (надо разобраться что делает программа) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |