Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

extern struct

281
31 января 2007 года
Fan][
279 / / 19.12.2003
В основном cpp-файле описывается структура:
Выделить всёкод C++
1:
2:
3:
4:
5:

struct FF
{
string Name;
int num;
}f_f;

Есть в проекте ещё один cpp-файл, в котором функция (используемая в основном cpp-файле) принимает и обрабатывает вектор типа vector<FF> и возвращает такой же вектор.

Так проблема в том, что не получается сделать extern struct FF.
Пишу в во втором h-файле
Выделить всёкод C++
1:

extern struct FF f_f;

- ошибка.
Пытаюсь добавить описание структур в него же - то же ошибка.

Как правильно объявить структуру extern?
8.8K
31 января 2007 года
The_Ice
109 / / 04.04.2006
помещай описания структур и классов в заголовочный файл и подключай там где надо:

Код:
//my_module.h

struct FF
{
   string name;
   int num;
};


//my_module.cpp
//и/или
//some_module.h/some_module.cpp
#include "my_module.h"

FF f_f;
281
01 февраля 2007 года
Fan][
279 / / 19.12.2003
Цитата: The_Ice
помещай описания структур и классов в заголовочный файл и подключай там где надо:

Код:
//my_module.h

struct FF
{
   string name;
   int num;
};


//my_module.cpp
//и/или
//some_module.h/some_module.cpp
#include "my_module.h"

FF f_f;



Сделал как ты сказал.
При линковке ошибка: ""struct FF f_f" (?f_f@@3UFF@@A) already defined in main.obj"
Я в main.cpp заполняю структуру, которую описал в main.h.
А потом в srt.cpp мне нужно передать эту структуру для манипуляции её значениями и вернуть "отманипулированную" обратно в main.cpp.
В srt.cpp делаю #include "main.h" и получаю вышеуказанную ошибку.

309
01 февраля 2007 года
el scorpio
1.1K / / 19.09.2006
А стандартный код заголовочного файла писался
 
Код:
#ifndef MI_Module_H
#define MI_Module_H
/// Здесь мы пишем код модуля
#endif //MI_Module_H

В противном случае код модуля генерируется нексолько раз, посему линковщик не может соединить дупликаты воедино.
1.8K
01 февраля 2007 года
k3Eahn
365 / / 19.12.2005
Заголовочный файл main.h:
Код:
#ifndef _MAIN_H_
#define _MAIN_H_

#include <string>

struct FF
{
    std::string s;
    int i;
};

#endif//_MAIN_H_
Файл main.cpp:
 
Код:
#include "main.h"
FF f_f;
Файл srt.cpp:
 
Код:
#include "main.h"
extern FF f_f;
8.8K
01 февраля 2007 года
The_Ice
109 / / 04.04.2006
извеняйте за пропущенные команды препроцессора - инет собака дорогой :) к тому же - если человек использует модификатор [color=blue]extern[/color], то и про модули, по идее, должен знать :)
281
02 февраля 2007 года
Fan][
279 / / 19.12.2003
Спасибо! Ворде разобрался и всё пошло.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог