Я думаю об условностях и компиляторах. Я программирую приложение для Arduino, поэтому мне нужно, чтобы приложение было как можно быстрее.
В моем коде у меня есть это:
#define DEBUG false    
...
if (DEBUG)
{
  String pinName;
  pinName = "Pin ";
  pinName += pin;
  pinName += " initialized";
  Serial.println(pinName);
}
Мне интересно, не компилятор не включает код (код в блоке if) в двоичном файле. Условия всегда ложные, поэтому программа никогда не идет туда.
И с другой стороны. Что делать, если DEBUG верен? Проверяет ли Arduino условие или компилятор включает только тело if в двоичном файле?
Я нашел этот сайт https://gcc.gnu.org/onlinedocs/gcc-3.0.2/cpp_4.html о директиве #if, поэтому я могу переписать код, чтобы иметь эти директивы вместо "нормального", если, Но я хотел бы знать, следует ли мне переписать его или если это будет пустой тратой времени.