We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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