C Manual for Ardruino?

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.