Sur les choix de l'IDE Arduino

bien le bonjour,

L'IDE Arduino fait quelques choix "personnels", sans doute dans le but louable de simplifier l'écriture d'un programme.

Parmi ceux-ci, la prise charge automatique des includes système. On peut utiliser Serial, et d'autres, sans avoir à inclure le .h adéquat.

C'est sympa. Mais est-ce ça aide ?
Ca masque un fait fondamental : le langage C/C++ ne définit par lui-même aucune fonction, aucune classe.
Toutes les fonctions, le moindre printf(), sont amenées par une bibliothèque, la libc, sous forme de pas mal de .h et d'une librairie dynamique.

Cette règle s'applique dans le C++ l'IDE Arduino.
Mais ... il n'y a pas besoin de l'appliquer dans certains cas (includes fournis avec l'IDE).
Mais ... il faut quand même inclure les .h des bibliothèques qu'on a installé soi-même.
Mais ... ces includes ne sont les mêmes que le .h de mon projet (s'il y en a), ce sont des includes "système".
Mais ... c'est quoi un include système, l'IDE ne m'en a jamais parlé ?

Est-ce ça aide vraiment ?
Est-ce que ça ne rend pas les choses plus mystérieuses ?

Leur approche c'est que l'environnement Arduino est tout intégré -> vous ne vous souciez pas d'inclure les bibliothèques de base. ils le font pour vous en incluant Arduino.h dans le main() (que vous n'écrivez pas non plus)

Si vous étendez cet environnement par d'autres bibliothèques alors il faudra les déclarer correctement.
Le menu "inclure une bibliothèque" dans l'IDE vous rajoute dans le code le #include associé pour simplifier un peu la chose.