ArduinoIDEのmain関数は?
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; } |