Il y a eu de grosses évolutions du langage C en 20 ans ?
Je n'en sais rien car je l'ai appris l'année dernière peu après mon inscription.
Avant cette date je n'avais aucune connaissance en C - C++ -microcontrôleurs ...
Mais je préfère les livres récents plutôt que ceux vieux de 20 ans car la technologie a forcément évoluée et le langage a du s'adapter. Du moins c'est ce que je présume.
D'autres que moi sur ce forum sont plus expérimentés pour te répondre plus précisément.
Bonne soirée
Oui et non, par contre il te faudra toujours maitriser les bases du C, qui eux non pas tellement changer.
Suivant ce que tu veux faire, il n'est pas forcément nécessaire de connaitre toutes les nouveautés apporté depuis le C99
Et rien ne t'empêche une fois les bases acquises de regarder si les nouveautés peuvent être intéressante pour toi.
Merci pour vos réponses.
Je viens de lire les premières pages du Langage C pour les nuls sur le site Amazon, le rédacteur demande d’utiliser Codeblocks.
Quel IDE utilisez-vous ?
J’ai un Mac M1 , et Codeblocks n’existe que pour les Mac Intel.
Est-ce qu’Eclipse est un bon choix ? Ou bien dois je utiliser Visual Studio Code ?
Mon Ide préférée c'est celle d'arduino surtout pour du C et les microcontrôleurs ! Je suis sur PC et je ne connais pas eclipse.
J'utilise codeblocks pour programmer en C++ moderne et vscode pour programmer en C++ moderne ou même les microcontrôleurs ( j'ai hacké une prise Sonoff avec vscode). Pour le C++ moderne, Je préfère codeblocks plus simple et convivial à mon sens mais tu n'y as pas accès.
Avec l'ide arduino et vscode ça devrait le faire pour toi...
Il y a des programmeurs très expérimentés sur ce forum qui sont sur Mac, ils devraient passer par là. Il en a un en particulier qui est extrêmement doué, j'espère qu'il passera te renseigner si il a le temps ; c'est @J-M-L.
Bonne soirée
Quand on apprend c’est bien de faire très attention à la syntaxe et grammaire du langage de programmation. Je suis donc partisan d’utiliser un éditeur de texte de base au début. (TextEdit en mode texte brut, TextMate voire vi ou eMacs dans un terminal).
Ça évite les aides automatiques de l’IDE qui au final vous empêchent de réfléchir et oblige à se concentrer sur les points virgules, les accolades, l’indentation (en python)…
Ensuite ce se sont pas les éditeurs de code qui manquent… suivant ce qu’on veut faire. Si vous voulez faire de l’arduino utilisez l’IDE arduino. Pour des outils compilés sur votre mac j’utilise directement xCode (mais c’est riche donc un certain temps est nécessaire à sa prise en main).
Éclipse c’est bien mais il faut aussi rentrer dedans.. je préfère xCode qui est fait par apple, pour apple.
D'accord avec JML, vaut mieux commencer petit.
Pour développer sur Mac, XCode est gratuit, mais c'est une énorme usine à gaz.
Sinon comme éditeur de texte C++ occasionnel, j'utilise TextWrangler, c'est un minimum d'avoir la coloration syntaxique.
Etant sous Unix, tu as la chance de pouvoir utiliser le Terminal. Au départ juste la commance 'cc' , puis progressivement 'make', etc.
oui ça aide, c'est pour cela que j'ai mentionné TextMate
TextWrangler est bien aussi sinon il y en a d'autres gratuits ou payants (cf Best Code Editors for Mac - 2023 Reviews & Comparison)
pour xCode c'est bien sûr super puissant car vous pouvez développer pour Mac, iPhone, iPad, Apple Watch, unix... Mais ce n'est pas si difficile que cela de rentrer dedans pour apprendre le C++.
il faut se créer un compte développeur gratuit chez apple et télécharger xCode
on lance et on arrive sur

- on clique sur créer un nouveau projet et on choisit qu'on veut un "command line tool" (un truc sans interface graphique qui va tourner dans le terminal)
On donne un nom au projet et on dit que c'est en C++

et on dit où on veut le stocker dans la fenêtre qui suit, par exemple sur le bureau.
Comme j'ai dit que mon projet s'appelait test, xCode a créé un dossier test sur le bureau et la fenêtre qui suit nous montre les attributs du projet.
on ne touche rien et on va voir le fichier principal qui a été créé en cliquant sur "C main" dans la colonne de gauche
voilà on a déjà notre fichier main en C++ qui dit Hello World tout prêt
il suffit de clicker sur la flèche en haut à gauche pour lancer la compilation et l'exécution.
et on voit le résultat dans la console qui apparaît en bas à droite
Pour débuguer, si vous clickez sur un numéro de ligne, vous mettez un point d'arrêt à cet endroit, par exemple ici pour la ligne 12, donc juste avant d'imprimer le message sur la sortie standard

si je relance le code en cliquant sur la petite flèche ma fenêtre me montre que le code est bloqué sur ce point d'arrêt
vous avez le contexte des variables (ici argc qui vaut 1 et argv qui est un pointeur sur caractère qu'on peut déplier

pour aller voir qu'il vaut "/"
et vous avez les petits boutons au dessus pour continuer d'avancer dans le code
pas à pas, jusqu'au prochain point d'arrêt etc
voilà il y a des tonnes d'outils avancés (en lançant Instrument) qui vous permettent d'analyser le code encore plus finement (y compris l'énergie utilisée - faut faire attention au courant et à sa batterie)
mais vous n'êtes pas obligé de connaître cela pour commencer.
➜ en gros, on crée un projet avec un fichier, on tape du code, on compile, on debug en peu de clicks
ça reste simple.
Pour programmer avec un microcontrôleur, il ne faudrait pas oublier la datasheet. Eventuellement après une impression papier si on préfère. C'est le document que je consulte le plus.
Si tu commences par le C ne regarde pas ce qui est lourd et compliqué comme les chaînes de caractère et les entrées-sorties (printf, fprintf, scanf, fscanf) parce que c'est beaucoup plus simple en C++ (type string, cout, cin).
À moins que cela ait changé ces dernières années ou que quelqu'un de plus compétent que moi ait des arguments contraires.
si l'objectif est de programmer sur µContrôleur ensuite alors ça vaut le coup parce que string , cout , cin ne sont pas dispo sur Uno par exemple. (et la classe String consomme pas mal de mémoire surtout si on l'utilise mal - et la RAM est très limitée justement sur nos petites bêtes)
comprendre aussi l'organisation de la mémoire, les pointeurs, comment ne pas déborder d'un tableau est aussi très important. Les chaînes de caractères sont un bon exemple pour cela. (un petit tuto : Introduction à la mémoire et aux pointeurs sur Arduino )
Je me demandais justement jusqu'à quel point la programmation Arduino était du C++.
Merci pour ces informations très utiles.
c'est 100% du C++11 (le compilateur utilisé est GCC) mais certaines bibliothèques ou fonctions avancées ne sont pas disponibles suivant la plateforme par manque de mémoire ou simplement dû au matériel. Par exemple vous n'avez pas de clavier ni d'écran, donc par défaut cout et cin ça ne veut rien dire.
en jouant sur ESP32 or MKR on a accès à plus de chose que sur UNO car il y a beaucoup plus de mémoire et le processeur est plus performant.
Pour débuter et ne pas être trop rebuter par le "bas niveau" de la programmation, moi je laisserais de cotés les éditeurs de texte et prendrais un éditeur avec toutes la chaine de compilation près installé.
Eclipse est un très bon éditeur, surtout si tu télécharge directement une version préconfigurer pour C++, après ça fait plusieurs année que je ne l'ai pas utilisé.
Je n'ai pas essayé VS-code en C++ qui est entre un éditeur de texte et un vrai IDE.
Avec un IDE digne de ce nom, tu as la coloration syntaxique du code, les erreurs de syntaxe signalé (oubli de ; ou fonction inconnue), l'auto-complétions, le débuggeur, plus plein de fonctionnalité que je dois oublier.
La saisie de code intelligente par contre, très utile pour les feignants comme moi, n'aide peut être pas au début.
Je ne sais pas ce que ça donne sur Mac, Visual Studio est vraiment très bien sur Windows.
"J’ai plusieurs projets en tête , et j’aimerai bien découvrir le monde Arduino." ![]()
aller autre info, pour les Utilisateurs d'Ubuntu , Gedit est tres bien, simple et déja installer.
les gréfons son multiples, et les ajout/modif possibles .
un exemple pour la coloration des croquis Arduino (et optim pour MySensors)
Editeur_Gedit_arduinoLang.pdf
le fichier pour un teste
un zip arduino.lang
mais en restant simple , la version 2 pour débuter est tres bien https://docs.arduino.cc/software/ide-v2
(il y a un article dans Elektor du mois)
sur Mac si vous avez un fichier test.cpp et que vous tapez make test ça va compiler test.cpp pour vous et générer un binaire exécutable qui s'appelle test dans le même répertoire. Pour "la chaine de compilation" ce n'est pas plus compliqué que ça quand on travaille avec un seul fichier.
mais oui quand on va plus loin c'est cool d'avoir un outil qui gère le makefile ou les dépendances et la compilation + link pour vous
Merci pour toutes ces réponses très intéressantes, mais je crois que l'on s'écarte du sujet initial.
Initialement je voulais une "introduction" au monde Arduino , et là je me retrouve à installer Xcode qui prend 20go sur mon Mac pour faire du C
, et quelques lignes plus haut on me dit qu'Arduino se programme en C++ 11, par conséquent je suis un peu perdu dans tout ça ![]()
Xcode fait du C++, du C, de l'objective C, du Swift ... ![]()
ça a l'avantage d'être supporté par Apple, d'installer les compilateurs adéquats pour votre Mac etc.
Mais sinon pour les fonctions de bases du C++ prenez un ESP32 et l'IDE arduino si vous voulez. ça vous permettra de dégrossir le terrain avec comme focus Arduino
Oui je sais, Mac n'est qu'un linux comme un autre.
Mais paradoxalement, si c'est pour rester avec un seul fichier .cpp et ne pas faire de .o, autant justement avoir un éditeur qui te mâche le boulot et ne soit pas chronophage, puisque tu ne veux pas approfondir la chose.
Pour moi de nos jours, il ne faut pas ce prendre la tête avec tous ça, à moins de vouloir faire comme @philippe86220, de bien maitriser la programmation.
Après malgré avoir longtemps utilisé emacs pour développer, personnellement je ne vois pas l'intérêt d'utiliser un éditeur de texte, qui de mon point de vue est une perte de temps.
Mais après les gouts et les couleurs ![]()
Non on ne s'éloigne pas tant que ça, ça dépend de ce que tu veux faire et ou tu veux aller ![]()





