Arduino claims to be a "language," not just an "application framework," and Arduino files have their own extension,
.ino. The language is obviously C++, but not quite. My understanding is that Arduino has some sort of special preprocessor which converts
.ino files into C++ files before compiling them.
My question is: What exactly does this preprocessor do? What exactly are the differences between "Arduino language" and real C++? The Arduino documentation seems to gloss over this.
In particular, I've had weird things happen when I try to define my own classes in my sketch. It's hard to figure out what I'm doing wrong when the language doesn't seem to be specified anywhere.