Problems with using struct and enum in another tab

  • 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:


    #include "./tab2.h"
     enum {
     void setup() {
    void loop() {


    void something () {
      Serial.println (on);

    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

  • I found the solution: if I #include all tabs in the main tab in the right order and the one with the structs is alphabetically before the others then it will work

  • happy to hear that 🙂 👍

Log in to reply

Recent Posts