C/C++との大きな違いは main 関数がないことです。正確には次のような main 関数が書かれているので main関数ではなく setup 関数と loop 関数を書くようになっています。
int main(void)
{
init();
initVariant();
setup();
for (;;) {
loop();
if (serialEventRun) serialEventRun();
}
return 0;
}
またプロトタイプ宣言を書かなくてもよいようにプリプロセッサを働かせたり、ライブラリのリンクについてあまり考えなくてもよいようになっています。また型宣言などが組み込みマイコン系のコンパイラを使うこともあり、PC上のC/C++言語開発環境と異なっています。
ほかにプログラムが RAM ではなく ROM 上にあり、初期値が ROM にあって実行時に ROM から RAM にコピーされること、RAM の容量が大きくはないことなどに注意するとよいと思います。