En er wordt niet gerekend met de literals. Die #defines geven alleen I/O namen aan en die int 'cycle_time is desondanks hij niet gewijzigd wordt, technisch gezien geen literal omdat het noch een const noch een #define is. Hij is veranderlijk.En het is heel gebruikelijk om #defines te gebruiken om I/O pinnen aan te duiden. Dit vreet namelijk geen extra geheugen. En er kan niks mee gebeuren. De pre compiler vervangt al die #define namen door de constantes. Als je variabelen gaat toewijzen aan I/O dan gebruik je minimaal 1 byte per I/O pin.
#define ledPin 4.// allerlei andere statements.#define ledPin 13
const int ledPin = 4;.// allerlei andere statements.const int ledPin = 13;
Als je beide stukjes compileert, levert dat dezelfde hoeveelheid bytes in programmageheugen en geen ruimtegebruik bij de variabelen op in je microcontroller.
const int ledPin = 4;.// allerlei andere statements.ledPin = 13;
const int x = 5;void setup() { const int x = 6; // compileert prima}void loop(){}
const int x = 5;void setup() { int x = 6; x = 10; // kan gewoon }void loop(){}
void foobar(){ const int x = 5; x++; Serial.println(x); // 6,7,....16}
@Timo En er wordt niet gerekend met de literals. Die #defines geven alleen I/O namen aan en die int 'cycle_time is desondanks hij niet gewijzigd wordt, technisch gezien geen literal omdat het noch een const noch een #define is. Hij is veranderlijk.