Hallo
So wie ich das verstanden habe sollten Funktionen nur eingebunden werden wenn sie auch benötigt werden. Hier mal ein Test:
Code:
//#include "asuro.h"
int main(void)
{
while(1);
}
..erzeugt bei mir 102 Bytes Programm. Mit include der normalen asuro-Library (Version 2.3 mit IR-Erweiterung) sind es über 1800 Bytes. Nun sollte man das noch mit der aktuellen Lib kompilieren. Da ich die aktuelle Lib nicht verwende kann ich das nicht testen, würde aber erwarten, dass irgendwas dazwischen, idealerweise nahe bei den 102 Bytes erzeugt wird. Und ich würde erwarten dass der Code länger wird wenn eine Funktion der Lib verwendet wird. Und der Codezuwachs bei der ersten Verwendung einer Funktion sollte größer sein als bei weiteren Verwendungen der selben Funktion (außer Inline ;)....
Gruß
mic
Hab' ich gleich mal weitergetestet:
1814 Bytes:
#include "asuro.h"
int main(void)
{
while(1);
}
1818 Bytes:
#include "asuro.h"
int main(void)
{
StatusLED(RED);
while(1);
}
(Funktionsaufruf und Konstante?)
1822 Bytes:
#include "asuro.h"
int main(void)
{
StatusLED(RED);
StatusLED(RED);
while(1);
}
Wie erwartet bindet die normale Lib die Funktionen immer ein, das Programm wird nur um die Aufrufe länger.
Lesezeichen