Как обратиться к переменной из любой части программы которая находится внутри функции, другими словами как вернуть 2 результата из функции? - страница 4

 
Dmitry Fedoseev:

Речь идёт о том что эти переменные будут генерироваться внутри функции а не передоваться, 

int Funcziya(int qw,in y){ передаём qw и y
int fa=0; инициализируются новые переменные
int fs=0;
int fd=0;
расчёты
return(fd); одну из переменных вернули остальные рассчитаны но нужно к ним обратиться
}

потому что если речь идёт о передаче переменных в функцию то можно использовать тип void что решит часть проблем, использовать глобальные переменные, но в данном случае нужно передать 2 переменные а на их основании будут получены расчёты для новых переменных к которым нужно обратиться.

 
Vitaly Muzichenko:

В вашем случае 

OnTick(){
 int a,b;
  int c=Funcziya(a,b);
   Print(a,"=",b,"=",c); // 5=10=15
}
int Funcziya(int &qw,int &y)
{
 int fa=0,fs=0,fd=0;
 qw=5;
 y=2+8;
 return(qw+y);
}

Речь идёт о том что в функцию я передаю 2 аргумента для расчётов а внутри функции может появится 10 и к каждой по отдельности нужно обратиться вызвав функцию 1 раз.

 
Seric29:

Речь идёт о том что эти переменные будут генерироваться внутри функции а не передоваться, 

потому что если речь идёт о передаче переменных в функцию то можно использовать тип void что решит часть проблем, использовать глобальные переменные, но в данном случае нужно передать 2 переменные а на их основании будут получены расчёты для новых переменных к которым нужно обратиться.

Ну так передайте эти две переменных в параметрах по ссылкам и получите в них результаты. Начинайте уж шевелить серым веществом.

 
Dmitry Fedoseev:

Ну так передайте эти две переменных в параметрах по ссылкам и получите в них результаты. Начинайте уж шевелить серым веществом.

Я вам пишу что я передаю 2 аргумента в функцию, а на выходе может быть 10 они будут проинициализированы и созданы внутри функции а мне нужно получить к ним доступ вызвав функцию 1 раз, получить доступ ко всем переменным функции одновременно а не просто передать и посчитать.

 
Seric29:

Я вам пишу что я передаю 2 аргумента в функцию, а на выходе может быть 10 они будут проинициализированы и созданы внутри функции а мне нужно получить к ним доступ вызвав функцию 1 раз, получить доступ ко всем переменным функции одновременно а не просто передать и посчитать.

Ну так кроме этих двух передайте еще 10.

А если количество неизвестно - передайте массив.

 

Можно так:

struct SX{
   double a;
   int b;
   double c;
   long z;
};

void OnStart(){

   SX x;
   x=Fun(1,2);
   
   Alert(x.a," ",x.b," ",x.c," ",x.z);

   
}
//+------------------------------------------------------------------+

SX Fun(int a,int b){
   SX rv;
   rv.a=1.1;
   rv.b=2;
   rv.c=3.2;
   rv.z=111; 
   return(rv);
 
Dmitry Fedoseev:

Можно так:

Спасибо это уже то что и нужно, буду экспериментировать.

Причина обращения: