Как передать в функцию разные типы переменных

ajk
Offline
Зарегистрирован: 11.09.2011

Мутно спросил, конкретизирую

Создал такую функцию:

void showMenu(int x, int y, char* aText, int pos, int i)   // текст, x, y, текст, позиция меню, номер меню
{
  lcd.setCursor(x, y);
  if ((pos != i) || (flash))
  {
    lcd.print(aText);
  }
}

Использую: showMenu( 0, 1, "некий текст", 8, 9);

А теперь захотелось передать некое число (int). Как это сделать?

Тупое преобразование char(), естественно, не работает, это число, а не байт. Но сама функция lcd.print может принимать любые типы.

Пробовал смотреть код библиотеки. Пока слабо.

Спасибо!

Александр.

step962
Offline
Зарегистрирован: 23.05.2011

ajk пишет:

А теперь захотелось передать некое число (int). Как это сделать?

Кодовое слово - "перегрузка функций"; попробуйте вот так:

void showMenu(int x, int y, char* aText, int pos, int i) {  // текст, x, y, текст, позиция меню, номер меню
  lcd.setCursor(x, y);
  if ((pos != i)) {
    lcd.print(aText);
  }
}

void showMenu(int x, int y, char c, int pos, int i) {  // текст, x, y, символ, позиция меню, номер меню
  lcd.setCursor(x, y);
  if ((pos != i)) {
    lcd.print(c);
  }
}

void showMenu(int x, int y, int val, int pos, int i) {  // текст, x, y, целое, позиция меню, номер меню
  lcd.setCursor(x, y);
  if ((pos != i)) {
    lcd.print(val);
  }
}