Перейти к публикации

Архивировано

Эта тема находится в архиве и закрыта для публикации сообщений.

ScrewDriver2002

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

Рекомендованные сообщения

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

В общем, ребята подскажите как в 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;

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

железный  :angry2:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Офф.

"Бэн. Это Данила. Ай нид хэлп."

 

Стыдно классику не знать :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Говнокод :(

 

В C++ нет AND

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


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Говнокод :(

 

В C++ нет AND

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

говнокомментарий, вынос за скобки в используемом компиляторе даст ошибку, и 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;

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, мне нужен внешний жесткий диск на 1 терабайт, цвет значения не имеет, главное  надежная марка

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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;

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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;

}

 

 

В чем разница между & и * в объявлении функции? как вызывать в твоем случае?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

  • Заходи к нам в Telegram!

  • Интересные предложения

×
×
  • Создать...