Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 1 / 1
Регистрация: 18.02.2012
Сообщений: 244
1

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

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

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

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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2013, 17:02
Ответы с готовыми решениями:

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

Для функции y=f(x) получить таблицу значений и график этой функции на отрезке
Для функции y=f(x) получить таблицу значений и график этой функции на отрезке. Количество точек на...

Для функции y=f(x) получить таблицу значений и график этой функции на отрезке
Для функции y=f(x) получить таблицу значений и график этой функции на отрезке. Количество точек на...

Для функции y=f(x)получить таблицу значений и график этой функции на отрезке.
Для функции y=f(x)получить таблицу значений и график этой функции на отрезке. Количество точек на...

25
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
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
0 / 1 / 1
Регистрация: 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
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
18.12.2013, 17:12 4
как вы себе это представляете? у вас функция возвращает int 1шт... , куда вы хотите это вернуть...какие 2 значения? бред какой-то...
можо по ссылке менять переменную, но не вернуть 2 при вызове 1 функции ....
0
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
18.12.2013, 17:13 5
Цитата Сообщение от _or_75 Посмотреть сообщение
1 вызовом этой функции а не с двумя
То есть это как? Пример на пальцах покажите
0
0 / 1 / 1
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:16  [ТС] 6
Цитата Сообщение от dzrkot Посмотреть сообщение
как вы себе это представляете? у вас функция возвращает int 1шт... , куда вы хотите это вернуть...какие 2 значения? бред какой-то...
можо по ссылке менять переменную, но не вернуть 2 при вызове 1 функции ....
А как насчет вернуть одно значение потом выполнить функцию еще раз но вернуть уже другой результат.
Хоть не 1 вызов функции но должно же работать
0
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
18.12.2013, 17:18 7
_or_75, да объясните вы что вы хотите получить! Пример, набросок, что-нибудь. Пока что несете немного бред.
0
0 / 1 / 1
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:19  [ТС] 8
Цитата Сообщение от MastAKK Посмотреть сообщение
То есть это как? Пример на пальцах покажите
То есть у вас с начало вернёт одно значение а когда вызов будет второй, вернёт другое значение.
То есть с каждым вызовом значение другое.

Например нужно вернуть 1 и 2, у вас с начало вернёт 1 а в следующем вызове вернёт 2, потом 1 и опять 2 и т. д.
0
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
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
148 / 139 / 18
Регистрация: 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
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
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 Посмотреть сообщение
плагиатор)))
:D не заметил, честно)

0
0 / 1 / 1
Регистрация: 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
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
18.12.2013, 17:29 14
Цитата Сообщение от _or_75 Посмотреть сообщение
даже если так
что?
0
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
18.12.2013, 17:32 15

Не по теме:

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


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

хорошо, давайте так, у вас есть 1 переменная, в которую вы можете записать возвращаемое функцией значение, но судя по всему вам необходимо поменять не 1, а 2 переменных... это можно сделать если обратиться к ней/ним по ссылке/указателю, и никак иначе
0
0 / 1 / 1
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:34  [ТС] 16
Цитата Сообщение от MastAKK Посмотреть сообщение
что?
не сработает вот что.

Ладно пример по проще:

Эта функция возвращает 1 если [клавиша зажата но не опущена] и 0 [если была нажата и опущена].
Надо сделать так чтобы была и [зажата] и [нажата и опущена]

как то так.

Знаю точно что решение делается всего в 3 функциях включая ту которая в 1 посте
0
Заблокирован
18.12.2013, 17:36 17
Цитата Сообщение от _or_75 Посмотреть сообщение
Надо сделать так чтобы была и [зажата] и [нажата и опущена]
Но ведь это противоречивые результаты
0
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
18.12.2013, 17:38 18
Цитата Сообщение от _or_75 Посмотреть сообщение
не сработает вот что.
Ладно пример по проще:
Эта функция возвращает 1 если [клавиша зажата но не опущена] и 0 [если была нажата и опущена].
Надо сделать так чтобы была и [зажата] и [нажата и опущена]
как то так
Черт, так бы сразу и сказал.
Во-первых.
Цитата Сообщение от _or_75 Посмотреть сообщение
не сработает вот что.
сработает, просто руки должны правильно расти.
Во-вторых. Отлавливаешь код кнопки, через if или switch проверяешь нужное значение. А функцию вызываешь в цикле

Добавлено через 1 минуту
Цитата Сообщение от _or_75 Посмотреть сообщение
Надо сделать так чтобы была и [зажата] и [нажата и опущена]
кстати да, условия противоречат друг другу
0
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
18.12.2013, 17:40 19
это уже RTOS попахивает, и опросом кнопки по таймеру))
0
0 / 1 / 1
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:40  [ТС] 20
Цитата Сообщение от MastAKK Посмотреть сообщение
Черт, так бы сразу и сказал.
Во-первых. сработает, просто руки должны правильно расти.
Во-вторых. Отлавливаешь код кнопки, через if или switch проверяешь нужное значение. А функцию вызываешь в цикле
да но коды клавиш в игре отличаются от системных, если бы этого не было я бы просто
вернул результат 1 [что клавиша зажата но не опущена], и перед этим симулировал обычное нажатие.
0
18.12.2013, 17:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2013, 17:40
Помогаю со студенческими работами здесь

Вычислить значение функции заданной графически и составить таблицу значений этой функции
Доброго дня всем, очень необходима ваша помощь, нужно: Написать программу, которая по введенному...

Возврат значений функции
def prostoe (a): d = 0 for i in range (1,a+1): if a%i==0: d = d + 1 if d<=2: return...

Возврат из функции нескольких значений
Дан массив . Выбрать из него положительные элементы и записать в массив A , где k<6; из...

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

Возврат нескольких значений из функции
У меня было задание в двух матрицах найти одинаковые элементы вывести их и их индексы. Сделать...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru