Про интервальную арифметику

Когда Вы пишете макрос в виде функции, он должен позволять использовать его как функцию без ограничений.

Если написать так, как Вы предлагаете, его нельзя будет использовать, например так:

if (a > 1) printVar(kaka);

И, кстати, обратите внимание, что у меня в конце нет точки запятой. Если её туда добавить, то нельзя будет использовать вот так:

if (a > 1) printVar(kaka); else printVar(mumu);

А так, как у меня написано, можно использовать везде, как вызов функции и не париться.

P.S.
Кстати, чуть не забыл. Второй из приведённых примеров не сработает и при таком определении макроса:

#define printVar(x) { Serial.print(#x);Serial.print('=');Serial.println(x); }
1 лайк