Hello. I am trying to find new and exciting ways to optimize (read: shrink down) my current code and want to include an eeprom autorefresh option to cut down on variables. Basically, when I have the AutoRefreshCompile option set, I want it to create the variable "randomvariable". My code is pretty simple:
#define AutoRefreshCompile 1 #if(AutoRefreshCompile==1) { // line x extern signed short randomvariable; } // line y #endif
I am getting errors that read as follows:
VARS.H(x) error C141: syntax error near '{' VARS.H(y) error C141: syntax error near '}'
I'm guessing it is not possible to do this (if I remember correctly, variables have to be declared at the beginning and can't be in the middle of functions/code segments but maybe it's some really simple fix.
I realize this might not work but I figure it's worth a shot. Any suggestions? Thanks!
For reference, I prefer to use the standard.
www.open-std.org/.../n1124.pdf
Yes, it's a draft of C99. Should be good enough for most needs anyway.
But note that C99 allows declarations anywhere within a block - not just at the start.
I don't think C51 allows this?
http://www.keil.com/product/isoansi.asp
Trying to use C99 features in pre-C99 compilers (like C51) is a not-infrequent source of problems on forums like this...
http://www.keil.com/support/man/docs/c51/c51_xa.htm