ir library

Bist du da sicher? Ich dachte wenn man eine Funktion einer Lib nicht verwendet wird sie auch nicht kompiliert. Das #include ist eigentlich nur ein Verweis wo was steht, damit der Compiler weiß dass die Funktionen existieren. Nicht eine Anweisung dass er alles dort kompilieren muss.

Der selbst geschriebene Code ist was anderes. Da kann es sehr gut sein, dass alles compiliert wird. Das hängt aber auch von Compiler/Linker Einstellungen ab.

Und selbst das scheint die Ardunio IDE zu optimieren:

void setup() 
{
}

void loop() 
{
  Serial.println(func2());
}

int func1()
{
  int i = 2;
  return i;
}

int func2()
{
  int i = 3;
  return i;
}

func1() wird nicht verwendet. Aber der Code hat 2046 Bytes, egal ob es auskommentiert ist, oder nicht. Wenn man dem vertrauen kann...