Знатоки, обьясните что это за конструкция и зачем она?

встретилась в коде такая конструкция, что она знАчит?

bool TimerHandler1(struct repeating_timer *t)
{ 
  (void) t;     // чо это с параметром стало?  И зачем?   Кста, t потом нигде не используеца
  
  static bool toggle1 = false;
  static bool started = false;

  if (!started)
  {
    started = true;
    pinMode(PIN_D1, OUTPUT);
  }

#if (TIMER_INTERRUPT_DEBUG > 0)
  Serial.print("ITimer1 called, millis() = "); Serial.println(millis());
#endif

  //timer interrupt toggles outputPin
  digitalWrite(PIN_D1, toggle1);
  toggle1 = !toggle1;

  return true;
}
1 лайк

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

Что-либо еще без остального кода сложно сказать.

1 лайк

это вся функция, t видна только в ней.

Так и есть.

1 лайк

Ни разу такого не встречал и не знал, что так можно было. Не язык, а писец какойто.

2 лайка

так я у тебя выражение “лжывый Ваш СИ” слямзил, внаглую, невзирая на (c) )))

А разве без 3 строки есть ругань ???

Ворнинги должны выдаваться.

У меня так было в исходниках, где дефайнами исключалась часть кода (enable/disable feature). Постоянно коричневым сыпало в IDE.

1 лайк

Сейчас @anonimSimen закомментирует и расскажет …

Деда, можно я тоже тут кое-чего спрошу?
Как так получается? Например, микроконтроллер PIC16F628A:

Объем памяти программ 3.5 кбайт(2k x 14)

Как так? Ну то есть - почему 14?
Объясните, пожалуйста, доходчиво, сам не соображу…

Я с PICами незнаком, жди взрослых.

8 бит для всех команд мало, а 16 много.

да там 35 команд всего

ну надо же ещё и номера регистров кодировать … … …

@DetSimen Что там насчет Знатоки, обьясните что это за конструкция и зачем она? - #7 от пользователя Komandir

я с работы уже уехал, у мня уже 18:45 на часах. Завтра

я такое у китайцев в коде видел.
Оно у них дефайном оформлено:

#define UNUSED(X) (void)X 

и потом просто пишут в коде

UNUSED(data);

получается самодокументированный код :slight_smile:

2 лайка

Дык, ото-ж!

есть еще такое

#define UNUSED(x) ((x)=(x))
2 лайка

О как. А я, признаться, думал что flash мк всегда по 8 бит (1 байт).

Плохая идея.

2 лайка