ArduinoIDEにはmain関数は無いのか?

C言語の必須アイテムといわれているmain関数がArduinoIDEには出てきません。

ArduinoIDEではsetup関数とloop関数の二つの関数が新規ファイル起動直後に出てきますが、どこにもmain関数はありません。

では、main関数は必要としないのかというと実は有ります。

1)インストール場所

main.cppというファイル名でインストールされてます、ロケーションはかなり奥の方でした。

2)main関数の中味

下にソースコードを書き出してみました。(一部コメント文は抜いてあります)

main関数の中で、setup関数とloop関数が記述してあり、更にloop関数の方は無限ループの設定になってました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <Arduino.h>
 
// Declared weak in Arduino.h to allow user redefinitions.
int atexit(void (* /*func*/ )()) { return 0; }
 
// Weak empty variant initialization function.
// May be redefined by variant files.
void initVariant() __attribute__((weak));
void initVariant() { }
 
void setupUSB() __attribute__((weak));
void setupUSB() { }
 
int main(void)
{
init();
 
initVariant();
 
#if defined(USBCON)
USBDevice.attach();
#endif
 
setup();
 
for (;;) {
loop();
if (serialEventRun) serialEventRun();
}
 
return 0;
}