Jump to content

Программисты, помогите с С++


ScrewDriver2002

Recommended Posts

Данила, ай нид хэлп.

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

Вопрос - как это по человечески делается?  :D

постановка звездочек не дает желаемого результата, а может я неверно их поставил  :blush:

 

Сам ниразу не программист в нормальном понимании этого слова. Компилятор arduino, может кто знаком  :blush:

 

Выглядит функция вот так (нужно вернуть новые значения 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;
}

уже не надо, нашелся хороший человек, объяснил как у нормальных программистов адресацию косвенную сделать  :D

 

если кому интересно - вот так:

 

вызов функции: 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

Говнокод :(

 

В C++ нет AND

key!=key_old  надо вынести за скобки


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

Для женщин подойдут яркие цвета: зеленый, розовый, голубой

Link to comment
Share on other sites

Говнокод :(

 

В C++ нет AND

key!=key_old  надо вынести за скобки

 

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

И вообще, я не код просил комментировать, а помочь  :D

Link to comment
Share on other sites

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

И вообще, я не код просил комментировать, а помочь  :D

Так значит это не С++ и даже не си

 

Правильней так

 

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

З.Ы, вообще то в си++ есть такое понятие - ссылка. Праивльней и красивей вообще так 

 

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

Так значит это не С++ и даже не си

 

Правильней так

 

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

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.


×
×
  • Create New...