Jump to content

Archived

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

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;

 

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

железный  :angry2:

Share this post


Link to post
Share on other sites

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

Офф.

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

 

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

Share this post


Link to post
Share on other sites

Говнокод :(

 

В C++ нет AND

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


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

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

Share this post


Link to post
Share on other sites

Говнокод :(

 

В C++ нет AND

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

 

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

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

Share this post


Link to post
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;

}

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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;

}

Share this post


Link to post
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;

}

 

 

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

Share this post


Link to post
Share on other sites

  • Recently Browsing   0 members

    No registered users viewing this page.

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

×
×
  • Create New...