Go Down

Topic: Mark macros in documentation (Read 143 times) previous topic - next topic

HorstBaerbel

Arduino is a beginner-IDE afterall. Macros like constrain() can stump beginners. If you use constrain in a way similar to this:
Code: [Select]
// read values from eeprom and constrain to allowed range
int address = 0;
uint8_t value = constrain(EEPROM.read(address++), 23, 99);

It will no give the desired results because the expression is expanded to:
Code: [Select]
uint8_t value = EEPROM.read(address++) < 23 ? 23 : EEPROM.read(address++) > 99 ? 99 : EEPROM.read(address++);
I suggest a short note ala "This is a macro function. See here for possible pitfalls when using macros.", linking to a short Macro topic (like #define which should also link there) that explains the above issue.

Best Regards,
Bim

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy