Hi I am using multiple tabs to make a big project more readable. Now i wanted one tab just to define structs and enums and get them out of the way.
The problem is that e.g. in tab#2 i can't use these data structures because they were "not declared in this scope". So I included the tabs using something like
#include "./tabWithEnums"
This works fine until I want to use the same structs in a third tab. If I don't include the defining tab, then I get the upper error. If I include the defining tab in tab#3 then I get the error "redeclaration of ...".
Running out of ideas, I put the structs and enums in the main tab - same result.
May last idea was to define for example an enum with ON/OFF as values in every tab where I need them. Then I get the error "redeclaration" too.
So i can't declare it twice because the IDE complains about double declaration but at the same time I can't use the correct declaration in the other tab. I am getting mad here.
I reduced the example code to this:
TAB1:
#include "./tab2.h"
enum {
off,
on
};
void setup() {
Serial.begin(9600);
Serial.println();
}
void loop() {
something();
delay(10000);
}
TAB2:
void something () {
Serial.println (on);
}
result:
exit status 1
'on' was not declared in this scope
please help. I lost several hours on this and I don't want to go back and put all code in one TAB. Btw. I know how to use variables over various tabs (using "extern") and methods (by declaring them from the calling tab) but both doesn't help me. Just so you know that I really tried.
thank you