Hello, I found this code on the internet:
I need to understand the use of the braces here: does {.....} evaluate to something when I write, for example, UInt8 val = _LPM( addr ) ?Code:#define _LPM(addr) \ ({ \ UInt16 __addr16 = (UInt16)(addr); \ UInt8 __result; \ __asm__ \ ( \ "lpm" "\n\t" \ "mov %0, r0" "\n\t" \ : "=r" (__result) \ : "z" (__addr16) \ : "r0" \ ); \ __result; \ })