I’m rewriting the navigate.c class for our team, and I’ve come to an annoying problem.
I have two sensors, left and right, for each side of the robot. Depending on a switch, only one should be read. That means I can save on code, I think.
With PBASIC, a simple if statement and alias command would set “sensor” to “left_sensor” or “right_sensor” but I have no idea how to do this in C, without going into pointers (which I don’t remember).
Is there any way I can make a conditional #define (or similar) statement?
Why not just have a conditional declaration?
if(your condition is meet)
int something else;
I’m probably misunderstanding you but its still worth a shot.
Won’t work. The declaration goes out of scope after the if block. There are two methods -
- You know at compile time which one you want
#define myVar var1
#define myVar var2
//myVar now refers to var1 or var2, depending on IWANTVAR1 (which MUST be either a constant or expand to a constant)
- You know at runtime
myVar = var1;
myVar = var2;
Note that way 2 only works for reading the variable, not writing. If you want something like the aliases, you either must know at compile time or deal with pointers (afaik)
I hope this is what you wanted…
Ah, thanks, I didn’t think about doing something simple like just reassigning the variable to a temporary variable. Seeing as I only need to read, I think I can make do with that, but I’ll have to fool around with it a bit.
On the other hand, it’s always a good time to relearn pointers…