Obwohl ich schon lange C / C ++ - Code geschrieben habe, haben mich die unsichtbaren Einschränkungen des Speicherbedarfs auf verschiedenen MCU- und SOC-Programmierplattformen oft gestolpert. Da ich im Begriff bin, Code für mein erstes großes Projekt für meine NANO-Boards zu erstellen, das wahrscheinlich einen angemessenen Teil seiner Ressourcen verbraucht, möchte ich besser auf überraschende und unerwartete "Fallstricke" vorbereitet sein .
Zum Beispiel war ich bei einem anderen SOC, an dem ich kürzlich ausgiebig gearbeitet habe (The Pololu.com wixel), sehr überrascht, diese Funktions- / Methodenargumente und automatischen Variablen zu erfahren, von denen ich normalerweise erwarten würde, dass sie stapelweise zugewiesen und wiederhergestellt werden, wenn eine Funktion zurückgegeben wird in der Tat dauerhaft für die Laufzeit des Programms zugewiesen! Beeindruckend! Auf dieser Plattform, auf der ich es normalerweise hasse, Variablen zu "überarbeiten" oder Variablen wiederzuverwenden, nachdem ihre Namen keinen Sinn mehr ergeben, musste ich meine Codierung an das anpassen, was ich aus Gründen der Lesbarkeit normalerweise für BAD halte. Ganz zu schweigen von der Erkenntnis, dass einfache Schleifenvariablen besser global zugeordnet werden sollten. Ja!
Können diejenigen von Ihnen, die in der Arduino-Umgebung auf solche unerwarteten Codierungsprobleme gestoßen sind, einige "spezielle" Richtlinien zu solchen Dingen teilen?
auto
in C ++ 11 von einem Speicherdauer-Bezeichner in einen Variablentyp-Bezeichner geändert. Der Einfachheit halber nicht verwendenauto
.