I'm still learning C and have been learning from "C for Dummies" and "The C Programming Language" by Kernighan and Ritchie, and it seems that there are differences between the C I'm learning and the C on Ardruino. Is the difference the Atmega chip, and is there a manual?
Is the difference the Atmega chip,
No. C is C wherever you go. The difference is in the stuff that's available to you. From a "straight C" perspective you should probably think of Arduino as
- C with a bunch of #define statements already set up
- C with a bunch of magical #include automatically 'added' to your program when you use something which should need #include
- A main(){} function already written for you so you only need to deal with setup(){} and main(){}
...there might be a bit else that's escaping my memory but... it IS C++, no doubt about it.
How different is C++?
It didn't seem to want to use the "printf" command, and some of the commands like "println" isn't in any of the C manuals I have.
How different is C++?
It didn't seem to want to use the "printf" command, and some of the commands like "println" isn't in any of the C manuals I have.
C++ is also C++ wherever you go.
You're right, you can't printf() on an Arduino. printf() is meaningless on an Arduino. In a 'normal' environment printf() will write to STDIO (ie: the shell where you run the program from) -- on a microcontroller there's no "standard output" ...
..so, of course, Arduino doesn't #include stdio.h : it doesn't make sense. Without stdio.h there's no printf(). If you want to test a program with printf() in you've got two options.
- Skip the Arduino, use native code on your platform
- Rewrite the printf()s to use some Serial.println() statements instead.