ScrewDriver2002 Posted September 10, 2013 Share Posted September 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; Link to comment Share on other sites More sharing options...
lbx Posted September 10, 2013 Share Posted September 10, 2013 Программисты посоветуйте, хочу купить внешний жесткий диск, какой лучше? Link to comment Share on other sites More sharing options...
ScrewDriver2002 Posted September 10, 2013 Author Share Posted September 10, 2013 Программисты посоветуйте, хочу купить внеше жесткий диск, какой лучше? железный :angry2: Link to comment Share on other sites More sharing options...
EvgeniySW Posted September 10, 2013 Share Posted September 10, 2013 Данила, ай нид хэлп. Офф. "Бэн. Это Данила. Ай нид хэлп." Стыдно классику не знать Link to comment Share on other sites More sharing options...
mxticker Posted September 10, 2013 Share Posted September 10, 2013 Говнокод В C++ нет AND key!=key_old надо вынести за скобки Программисты посоветуйте, хочу купить внеше жесткий диск, какой лучше? Для женщин подойдут яркие цвета: зеленый, розовый, голубой Link to comment Share on other sites More sharing options...
ScrewDriver2002 Posted September 10, 2013 Author Share Posted September 10, 2013 Говнокод В C++ нет AND key!=key_old надо вынести за скобки говнокомментарий, вынос за скобки в используемом компиляторе даст ошибку, и AND тут есть. Читаем, прежде чем умничать. И вообще, я не код просил комментировать, а помочь Link to comment Share on other sites More sharing options...
mxticker Posted September 10, 2013 Share Posted September 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; } Link to comment Share on other sites More sharing options...
lbx Posted September 10, 2013 Share Posted September 10, 2013 Да, мне нужен внешний жесткий диск на 1 терабайт, цвет значения не имеет, главное надежная марка Link to comment Share on other sites More sharing options...
mxticker Posted September 10, 2013 Share Posted September 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; } Link to comment Share on other sites More sharing options...
ScrewDriver2002 Posted September 10, 2013 Author Share Posted September 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; } В чем разница между & и * в объявлении функции? как вызывать в твоем случае? Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.