Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
#1

Возврат 2 значений из функции с одним вызовом этой же функции - C++

18.12.2013, 17:02. Просмотров 1026. Ответов 25
Метки нет (Все метки)

Вообщем где то в какой то игре была хукнута одна функция

C++
1
int function(int arg1,int arg2,int arg3);
суть в чем

C++
1
2
3
4
5
6
7
int function(int arg1,int arg2,int arg3)
{
    int retval = 0;
    // туча кода
    int rettwo = function2(arg1,arg2,arg3);
    return retval;
}
Нужно вызвать function и возвратить retval значение а потом вызывать опять но вернуть уже rettwo.
Вроде бы на asm это можно но я не знаю как c++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2013, 17:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возврат 2 значений из функции с одним вызовом этой же функции (C++):

Расчёт значений двумерного массива и их возврат в main() с однократным вызовом функции - C++
Добрый день. Пусть некоторая функция f(a,b,...) производит расчет и записывает данные в двумерный массив M, возвращая его указатель...

Некорректный возврат значений из функции - C++
В функции Main после вызова fillArrayLastSymbol выводятся не те элементы массива, которые были выведены перед выходом из функции. Вторым...

Возврат нескольких значений из функции - C++
Здравствуйте, Подскажите пожалуйста, как можно передать из функции 2 результата, например, в магазине есть купюры номиналом 2 и 5,...

Возврат из функции двух значений - C++
в массиве нужно выбрать минимально и максимально значения, а затем их местами поменять. чтоб узнать макс. и мин. пишу две функции заодно...

найти сумму значений этой функции при n=1...10 - C++
аргументом функции y=sinx служат числа натурального ряда от 1 до 10 найти сумму значений этой функции при n=1...10 ...

Проблемы с вызовом функции - C++
Проблемы с вызовом 3 функции,тип(Void); Подскажите в чем ошибка. #include <iostream> using namespace std; ...

25
dzrkot
zzzZZZ...
522 / 352 / 53
Регистрация: 11.09.2013
Сообщений: 2,023
18.12.2013, 17:05 #2
C++
1
2
3
4
5
6
7
8
9
10
11
static bool flag=true;
if (flag)
{
flag=false;
return a;
}
else
{
flag=true;
return b;
}
идея такая
0
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:09  [ТС] #3
Цитата Сообщение от dzrkot Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
static bool flag=true;
if (flag)
{
flag=false;
return a;
}
else
{
flag=true;
return b;
}
идея такая
Да но надо с 1 вызовом этой функции а не с двумя. Тут тоже ничего не выйдет
0
dzrkot
zzzZZZ...
522 / 352 / 53
Регистрация: 11.09.2013
Сообщений: 2,023
18.12.2013, 17:12 #4
как вы себе это представляете? у вас функция возвращает int 1шт... , куда вы хотите это вернуть...какие 2 значения? бред какой-то...
можо по ссылке менять переменную, но не вернуть 2 при вызове 1 функции ....
0
MastAKK
145 / 136 / 12
Регистрация: 13.10.2012
Сообщений: 592
18.12.2013, 17:13 #5
Цитата Сообщение от _or_75 Посмотреть сообщение
1 вызовом этой функции а не с двумя
То есть это как? Пример на пальцах покажите
0
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:16  [ТС] #6
Цитата Сообщение от dzrkot Посмотреть сообщение
как вы себе это представляете? у вас функция возвращает int 1шт... , куда вы хотите это вернуть...какие 2 значения? бред какой-то...
можо по ссылке менять переменную, но не вернуть 2 при вызове 1 функции ....
А как насчет вернуть одно значение потом выполнить функцию еще раз но вернуть уже другой результат.
Хоть не 1 вызов функции но должно же работать
0
MastAKK
145 / 136 / 12
Регистрация: 13.10.2012
Сообщений: 592
18.12.2013, 17:18 #7
_or_75, да объясните вы что вы хотите получить! Пример, набросок, что-нибудь. Пока что несете немного бред.
0
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:19  [ТС] #8
Цитата Сообщение от MastAKK Посмотреть сообщение
То есть это как? Пример на пальцах покажите
То есть у вас с начало вернёт одно значение а когда вызов будет второй, вернёт другое значение.
То есть с каждым вызовом значение другое.

Например нужно вернуть 1 и 2, у вас с начало вернёт 1 а в следующем вызове вернёт 2, потом 1 и опять 2 и т. д.
0
dzrkot
zzzZZZ...
522 / 352 / 53
Регистрация: 11.09.2013
Сообщений: 2,023
18.12.2013, 17:21 #9
Цитата Сообщение от _or_75 Посмотреть сообщение
А как насчет вернуть одно значение потом выполнить функцию еще раз но вернуть уже другой результат.
Хоть не 1 вызов функции но должно же работать
даже если теоретически это возможно, то вы перепишите 1ое значение 2-ым...

функция ваша вызывается так:
C++
1
2
int x;
x=function(arg1,arg2,arg3);
т.е. мы в х запишем(теоретически) ОБА ваши значения и это не имеет никакого лог смысла.

Добавлено через 46 секунд
Цитата Сообщение от _or_75 Посмотреть сообщение
То есть у вас с начало вернёт одно значение а когда вызов будет второй, вернёт другое значение.
То есть с каждым вызовом значение другое.

Например нужно вернуть 1 и 2, у вас с начало вернёт 1 а в следующем вызове вернёт 2, потом 1 и опять 2 и т. д.
.... это 2 вызова, а не 1.
0
MastAKK
145 / 136 / 12
Регистрация: 13.10.2012
Сообщений: 592
18.12.2013, 17:23 #10
_or_75, хм, а если так?
C++
1
2
3
4
5
6
7
8
9
10
11
int function(){
    static bool callOne = true;
    if(callOne){
       callOne = !callOne;
       return 1;
    }
    else{
       callOne = !callOne;
       return 2;
    }
}
0
dzrkot
zzzZZZ...
522 / 352 / 53
Регистрация: 11.09.2013
Сообщений: 2,023
18.12.2013, 17:26 #11
Цитата Сообщение от MastAKK Посмотреть сообщение
_or_75, хм, а если так?
C++
1
2
3
4
5
6
7
8
9
10
11
int function(){
    static bool callOne = true;
    if(callOne){
       callOne = !callOne;
       return 1;
    }
    else{
       callOne = !callOne;
       return 2;
    }
}

Не по теме:

плагиатор)))

0
MastAKK
18.12.2013, 17:28
  #12

Не по теме:

dzrkot,

Цитата Сообщение от dzrkot Посмотреть сообщение
плагиатор)))
не заметил, честно)

0
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:28  [ТС] #13
Цитата Сообщение от MastAKK Посмотреть сообщение
_or_75, хм, а если так?
C++
1
2
3
4
5
6
7
8
9
10
11
int function(){
    static bool callOne = true;
    if(callOne){
       callOne = !callOne;
       return 1;
    }
    else{
       callOne = !callOne;
       return 2;
    }
}
даже если так
0
MastAKK
145 / 136 / 12
Регистрация: 13.10.2012
Сообщений: 592
18.12.2013, 17:29 #14
Цитата Сообщение от _or_75 Посмотреть сообщение
даже если так
что?
0
dzrkot
zzzZZZ...
522 / 352 / 53
Регистрация: 11.09.2013
Сообщений: 2,023
18.12.2013, 17:32 #15

Не по теме:

по-моему автор темы неадекватен.


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

хорошо, давайте так, у вас есть 1 переменная, в которую вы можете записать возвращаемое функцией значение, но судя по всему вам необходимо поменять не 1, а 2 переменных... это можно сделать если обратиться к ней/ним по ссылке/указателю, и никак иначе
0
18.12.2013, 17:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2013, 17:32
Привет! Вот еще темы с ответами:

.Написать функцию, которая будет возвращать значение y=ln(x)+x при входящем параметре x. Построить таблицу значений этой функции - C++
.Написать функцию, которая будет возвращать значение y=ln(x)+x при входящем параметре x. Построить таблицу значений этой функции. ...

Вычисление функции на заданном промежутке, и построение графика этой функции - C++
Написать блок-схему и программу вычисления функции на за- данном промежутке с шагом 0.2 и построить график этой функции. Если x>1 ...

Перевести с Pascal вычисление функции на заданном промежутке и построить график этой функции - C++
uses crt,graphABC; function y(x:real):real; begin if x<0 then y:=x*x else if x<=2.5 then y:=1+3*ln(abs(1-x*x*x)) else...

Не компилируется строка с вызовом функции - C++
#include <iostream> using namespace std; void chis(int a) { if(a/2==0) { cout<<" "<<endl; } ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru