I have found out that the compile includes "all files" automaticly except ".h" Header files by default.
I have a need to make changes to an existing sketch, but don't want to loose the existing configuration.
(for maintenance purposes).
Therefore I name each tab other then the two initial ones as "xxx.h" making it a header file.
In this way I can develop individual functions or globals without directly including them
in the sketch main body.
Then I use the #include to include the files that I want in a specific version.
This is a very handy way (but not what header files were suppose to be).
I also use the #ifndef, #define, and #endif. These are all part of the normal c++
I even GUT the normal content of the ".ino" file and fill it with #includes for each test script, I comment out
all but the one test script I want to run.
I also have "class_includes.h" files that has nothing but #includes for each tab (member
fragment) that I want to include. The test script names the member_includes.h file needed
to build the correct structure for the test.
I also have a file named: "display_state.h" which has all of the monitor write commands to diplsay
status information for debugging purposes.
There are many ways to use this facility. Now I am looking into how to #incluude tabs from other sketches.
That will allow me to reuse code from other sketches, rather than copying them into the new sketch.
"reference" is a lot better than "copy". Maintaining multiple copies becomes a nightmare.
Hope this helps.