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!
#if(AutoRefreshCompile==1) { signed short randomvariable = 0; }
Why the braces?
"I assume the problem I'm having is Keil specific"
Why? Have you tried the same code in another compiler?
Have you looked at the preprocessor output, as suggested, to see exactly what you're creating by this?
"You assume ... I know nothing about C code"
I don't think anyone's suggested that you know nothing, but it's clear that you lack some understanding - particularly regarding the preprocessor...