> That's only a guess, I haven't tried it, but what about: > { > class c; > { > other stuff; > } > } I have tried some similar changes (put one in a function, etc...) but the compiler always optimizes it. To be inline is very important due to speed. > Are those variables which map to hardware registers indicated as such (e.g., > volatile), so the compiler is informed that they cannot be subject to > certain optimizations? The register definitions are in the header files shipped with avr-libc. I will check them, but AFAIK they are defined volatile. BTW the accesses are compiled as IN/OUT instructions. Regards K. Gy.