ScrewDriver2002 Опубликовано 10 сентября, 2013 Поделиться Опубликовано 10 сентября, 2013 Данила, ай нид хэлп. В общем, ребята подскажите как в C++ подобных вещах сделать вот что - есть функция, нужно из нее вернуть 2,3,4... и тд параметров. Вопрос - как это по человечески делается? постановка звездочек не дает желаемого результата, а может я неверно их поставил Сам ниразу не программист в нормальном понимании этого слова. Компилятор arduino, может кто знаком Выглядит функция вот так (нужно вернуть новые значения number и level, а по хорошему - перезаписать старые): void menu(int key, int level, int number){ static int key_old; if (key!=key_old and key==3) {number++;}; if (key!=key_old and key==4) {number--;}; if (key!=key_old and key==2) {level++;}; if (key!=key_old and key==5) {level--;}; key_old=key; } уже не надо, нашелся хороший человек, объяснил как у нормальных программистов адресацию косвенную сделать если кому интересно - вот так: вызов функции: menu(key, &level, &number); void menu(int key, int* level, int* number){ static int key_old; if (key!=key_old and key==3) {(*number)++;}; if (key!=key_old and key==4) {(*number)--;}; if (key!=key_old and key==2) {(*level)++;}; if (key!=key_old and key==5) {(*level)--;}; key_old=key; Ссылка на комментарий Поделиться на другие сайты Поделиться
lbx Опубликовано 10 сентября, 2013 Поделиться Опубликовано 10 сентября, 2013 Программисты посоветуйте, хочу купить внешний жесткий диск, какой лучше? Ссылка на комментарий Поделиться на другие сайты Поделиться
ScrewDriver2002 Опубликовано 10 сентября, 2013 Автор Поделиться Опубликовано 10 сентября, 2013 Программисты посоветуйте, хочу купить внеше жесткий диск, какой лучше? железный :angry2: Ссылка на комментарий Поделиться на другие сайты Поделиться
EvgeniySW Опубликовано 10 сентября, 2013 Поделиться Опубликовано 10 сентября, 2013 Данила, ай нид хэлп. Офф. "Бэн. Это Данила. Ай нид хэлп." Стыдно классику не знать Ссылка на комментарий Поделиться на другие сайты Поделиться
mxticker Опубликовано 10 сентября, 2013 Поделиться Опубликовано 10 сентября, 2013 Говнокод В C++ нет AND key!=key_old надо вынести за скобки Программисты посоветуйте, хочу купить внеше жесткий диск, какой лучше? Для женщин подойдут яркие цвета: зеленый, розовый, голубой Ссылка на комментарий Поделиться на другие сайты Поделиться
ScrewDriver2002 Опубликовано 10 сентября, 2013 Автор Поделиться Опубликовано 10 сентября, 2013 Говнокод В C++ нет AND key!=key_old надо вынести за скобки говнокомментарий, вынос за скобки в используемом компиляторе даст ошибку, и AND тут есть. Читаем, прежде чем умничать. И вообще, я не код просил комментировать, а помочь Ссылка на комментарий Поделиться на другие сайты Поделиться
mxticker Опубликовано 10 сентября, 2013 Поделиться Опубликовано 10 сентября, 2013 говнокомментарий, вынос за скобки в используемом компиляторе даст ошибку, и AND тут есть. Читаем, прежде чем умничать. И вообще, я не код просил комментировать, а помочь Так значит это не С++ и даже не си Правильней так void menu(int key, int* level, int* number){ static int key_old = 0; // инициализировать надо иначе в релизе мусор if (key!=key_old) { if (key==3)(*number)++; if (key==4)(*number)--; if (key==2)(*level)++; if (key==5)(*level)--; key_old=key; } Ссылка на комментарий Поделиться на другие сайты Поделиться
lbx Опубликовано 10 сентября, 2013 Поделиться Опубликовано 10 сентября, 2013 Да, мне нужен внешний жесткий диск на 1 терабайт, цвет значения не имеет, главное надежная марка Ссылка на комментарий Поделиться на другие сайты Поделиться
mxticker Опубликовано 10 сентября, 2013 Поделиться Опубликовано 10 сентября, 2013 З.Ы, вообще то в си++ есть такое понятие - ссылка. Праивльней и красивей вообще так void menu(int key, int& level, int& number){ static int key_old = 0; // инициализировать надо иначе в релизе мусор if (key!=key_old) { if (key==3)number++; if (key==4)number--; if (key==2)level++; if (key==5)level--; key_old=key; } Ссылка на комментарий Поделиться на другие сайты Поделиться
ScrewDriver2002 Опубликовано 10 сентября, 2013 Автор Поделиться Опубликовано 10 сентября, 2013 Так значит это не С++ и даже не си Правильней так void menu(int key, int* level, int* number){ static int key_old = 0; // инициализировать надо иначе в релизе мусор if (key!=key_old) { if (key==3)(*number)++; if (key==4)(*number)--; if (key==2)(*level)++; if (key==5)(*level)--; key_old=key; } тогда уж case поставить, в место кучи IF =) З.Ы, вообще то в си++ есть такое понятие - ссылка. Праивльней и красивей вообще так void menu(int key, int& level, int& number){ static int key_old = 0; // инициализировать надо иначе в релизе мусор if (key!=key_old) { if (key==3)number++; if (key==4)number--; if (key==2)level++; if (key==5)level--; key_old=key; } В чем разница между & и * в объявлении функции? как вызывать в твоем случае? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Заархивировано
Эта тема находится в архиве и закрыта для дальнейших ответов.