Вопрос новичка
От: shardim  
Дата: 14.06.07 11:10
Оценка:
У меня есть две функции находящихсе в разных файлах. Например
Файл 1
void f1()
{
int x;
int x1;
...
int x100;
f2();
}

Файл 2
void f2()
{
x=1;
x2=1;
...
x100=1;
}

Как сделать чтобы в функции f2 были видны переменные объявленные в f1?
Re: Вопрос новичка
От: ДимДимыч Украина http://klug.org.ua
Дата: 14.06.07 11:14
Оценка:
Здравствуйте, shardim, Вы писали:

S>У меня есть две функции находящихсе в разных файлах. Как сделать чтобы в функции f2 были видны переменные объявленные в f1?


Никак.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re: Вопрос новичка
От: Bell Россия  
Дата: 14.06.07 11:16
Оценка:
Здравствуйте, shardim, Вы писали:

S>У меня есть две функции находящихсе в разных файлах. Например

S>Файл 1
S>void f1()
S>{
S> int x;
S> int x1;
S> ...
S> int x100;
S> f2();
S>}

S>Файл 2

S>void f2()
S>{
S> x=1;
S> x2=1;
S> ...
S> x100=1;
S>}

S>Как сделать чтобы в функции f2 были видны переменные объявленные в f1?

В данной постановке — никак.
Можно создать класс, поместить в него нужные данные и сделать f1 и f2 членами этого класса.
Любите книгу — источник знаний (с) М.Горький
Re: Вопрос новичка
От: Janis Россия  
Дата: 14.06.07 11:26
Оценка:
К примеру, так:
Файл 1
int x;
int x1;
...
int x100;
void f1()
{
f2();
}

Файл 2
extern int x;
extern int x1;
...
extern int x100;
void f2()
{
x=1;
x2=1;
...
x100=1;
}
Re: Вопрос новичка
От: Seon  
Дата: 14.06.07 11:38
Оценка:
Здравствуйте, shardim, Вы писали:

S>У меня есть две функции находящихсе в разных файлах. Например

S>Файл 1
S>void f1()
S>{
S> int x;
S> int x1;
S> ...
S> int x100;
S> f2();
S>}

S>Файл 2

S>void f2()
S>{
S> x=1;
S> x2=1;
S> ...
S> x100=1;
S>}

S>Как сделать чтобы в функции f2 были видны переменные объявленные в f1?


Лучше вообще не привыкать к глобальным переменным.

Файл 1
void f1()
{
 int x;
 int x1;
 ...
 int x100;
 f2(x, x2, ..., x100);
}


Файл 2
void f2(int& x, int& x2, ... ,int& x100)
{
 x=1;
 x2=1;
 ...
 x100=1;
}


Лучше так
Файл 1
void f1()
{
 int x[100];
 f2((int*)x);
}


Файл 2
void f2(int* x)
{
  for(int n = 0; n < 100; ++n)
    x[n] = 1;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.