In a real C I've to include all header files, which your
int main ()
{
return 0;
}
don't have: everything is still quite hidden, giving a different approach to a pure C. I've to digg if I want to see everything even in this case.
You know what was the misunderstanting? PaulS and you might have right, but not because Arduino Language is C/C++, but if you mean that is BASED on it. It is written on this site too (Arduino.cc ), and is different to me.
That means for me which you don't have to learn C (applied on MCUs) to use it thanks to the libraries developed ready to help you, learning only -how- to use libraries and not how to create them. You can do it, since all language is no more than high level functions -written- in C, so it's quite natural that I can write in C too.
"Based on" means that you have some differences, like Setup() and loop(), pre-written in C, which is the goal of the IDE. Of course, you can write in almost-pure C like you said before. In real pure-C environment no one write those things, except for stdio stuff et similia. So, it's C, but not with a pure approach (if you don't want to). It's a slight difference. Under this point PaulS have right, you can use the same language if you want.
But this leads to the next answer:
For fake things I mean someone that says which is able to program a microcontroller and knows C because have used Arduino. Most of them don't know how to use printf() functions (those famous already made, but are STANDARD functions, not like Arduino ones), are not capable to manage registers in a microcontroller and embarrassing stuff like that, all of this from people saying that are capable to program an MCU, or are not capable to use a Timer because "they never used" it before (never used explicitly, of course), while it is a mandatory knowledge about that. And thise because they was think that this was "pure" C, expecting to have some (and simple) stuff already made, where in some environment is NORMAL (and sometimes mandatory if you need particular configurations) doing it by your self and does not require too much time.
But this leads to the next answer:
configurations are intended like the procedure to follow for setting and activating of USART module, to say one example.
Maybe understanding the difference between BASED ON and IT IS could be the key to understand each other. In a way I said what you say, but a bit more precise. This little difference is the success of Arduino, one can't deny that. I'm happy for this, I've an Arduino Duemilanove too, but I find ethically right to explain well things. It's important for newbies or "people who don't care right know" (i.e. artists w/out a kind of knowledge, of course).
This is the reason why companies don't use Arduino, and in almost all universities is recommended to be used only for proto-proto-prototyping, translating to see only if the idea work. An MCU pure-C language allows you to predict a single clock cycle, which you can't in Arduino IDE (this is said by Arduino "staff" makers that work in Turin, during a presentation). Which is fundamental saying that is BASED on C and for learn a good C programming manner is not the best using the IDE. And this is not (only) my idea.