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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2009, 22:02   #1
-zeus-
Пользователь
 
Регистрация: 11.03.2009
Сообщений: 11
По умолчанию

Здравствуйте. Есть такая задача: нужно написасть программу, которая бы состояла из нескольких модулей.

Есть массив структур, программа должна обладать такими свойствами:

-добавление новых строк в таблицу;
-удаление строки с заданным номером из таблицы;
-вывод на экран информации, которая сохраняется в строке с заданным номером;
-вывод на экран всей таблицы.

Это все должно быть в разных модулях.
Подскажите, как обьявить и обращаться к структуре и как вызывать ее из разных модулей. Я понимаю, что это что-то, связанное с типом памяти extern ???
Зарание спасибо.

Я не прошу написать мне прогу, япрошу обьяснить.

Последний раз редактировалось MaTBeu; 18.03.2009 в 23:12.
-zeus- вне форума Ответить с цитированием
Старый 18.03.2009, 22:28   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

я так понял , что Вам нужно раскидать функции по разным файлам ?

ну тогда это будет выглядеть как то так

Код:
// file1.cpp
int k=0;

void func1()
{ k++; }
Код:
// main.cpp
#include <iostream>

using namespace std;

void func1();

extern int k;

void main ()

{
   func1();
  cout<<k;
}

Последний раз редактировалось counter; 18.03.2009 в 22:33.
counter вне форума Ответить с цитированием
Старый 18.03.2009, 23:29   #3
-zeus-
Пользователь
 
Регистрация: 11.03.2009
Сообщений: 11
По умолчанию

спасибо, попробую.
-zeus- вне форума Ответить с цитированием
Старый 18.03.2009, 23:45   #4
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Ерунда какая-то. Зачем тут глобальные переменные то? Мне кажется крайне неудачный способ для решения данной задачи.
И так, по порядку. Для начала создадим структуру, например в файле file.h:
Код:
/*file.h*/
struct mySt
{
int a;
float b;
char c[255];
};
/*Далее создадим функции для работы с этой структурой.
При необходимости это можно сделать и в отдельном файле*/

void func1(int x)
{ ... }

int func2(float y)
{ ... }

/*И так далее*/
Теперь создадим основной файл main.c:
Код:
/*необходимо подключить файл со структурой*/
#include "file.h"

int main(void)
{
/*Теперь мы можем обращаться к структуре, которая находится в файле file.h*/
struct mySt A;
A.b = 12.8;
/*а также, мы можем обращаться к функциям из того файла (но при необходимости, это может быть и другой файл, в итоге их может быть сколько угодно)*/
func1(5);

return 0;
}
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 19.03.2009, 14:44   #5
-zeus-
Пользователь
 
Регистрация: 11.03.2009
Сообщений: 11
По умолчанию

А не надо писать в файле file.h когда структуру обьявляем что она екстерн?
Вообше нужно хоть где-то писать екстерн? Нам обьясняли, что для того, чтоб с переменной могли работать все модули программі, нужно обьявить ее как внешнюю.
-zeus- вне форума Ответить с цитированием
Старый 19.03.2009, 14:49   #6
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Модификатор extern предназначен для того, что бы показать компилятору что используется глобальная переменная, описанная в другом файле. Но в данном случаи мы подключаем другой файл до того, как используем переменные, следовательно модификатор extern не нужен
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 19.03.2009, 15:33   #7
-zeus-
Пользователь
 
Регистрация: 11.03.2009
Сообщений: 11
По умолчанию

Ясно, спасибо за помощь.
-zeus- вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание и подключение модулей Claster Общие вопросы Delphi 4 28.02.2009 12:14
подключение модулей... Teleport Помощь студентам 2 25.06.2008 00:26
подключение модулей... Teleport Помощь студентам 1 13.06.2008 15:04
Объединение GWT-модулей ILester JavaScript, Ajax 0 24.10.2007 14:55