Auteur Sujet: Il était temps !  (Lu 204 fois)

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1557
    • Voir le profil
Il était temps !
« le: mai 21, 2020, 12:15:39 pm »
Bonjour,

Depuis C++14, et par conséquent c'est disponible dans le système Arduino, on peut spécifier des constantes litérales en binaire. Après 50 ans de C, c'est quand même sympa que ça arrive alors que l'octal dont tout le monde se contre-fout, est présent depuis le début :)

Donc on préfixe par 0B ou 0b et derrière on met les chiffres binaires. Pour la taille, il faut, comme d'habitude, suffixer par u ou U (non signé), l ou L (32 bits) , ul ou UL/uL/Ul (non signé, 32 bits)

On peut également placer des ' aux endroits stratégiques d'une constante numérique entière pour faciliter la lecture en séparant les champs (milliers/centaine, ... ou les champs de bits) mais là c'est pas présent par défaut. Il faut éditer le fichier platform.txt pour remplacer le -std=gnu++11 par -std=gnu++14
Cordialement

Didier44

  • Newbie
  • *
  • Messages: 43
    • Voir le profil
Re : Il était temps !
« Réponse #1 le: mai 22, 2020, 10:00:13 am »
Bonjour,

Aussitôt dit, aussitôt fait pour passer  en gnu++14 mais ma machine se rebelle
Windows 10 - Arduino IDE 1.8.12
et me réclame la version 11 lors d'une compilation (Arduino Mega)
Dans platform.txt il y a deux lignes à modifier.
Une autre manip à faire par ailleurs ?
Bon WE
Didier

Souris verte

  • Newbie
  • *
  • Messages: 33
  • HO, DCC, Arduino...
    • Voir le profil
Re : Il était temps !
« Réponse #2 le: mai 22, 2020, 10:31:31 am »
Bjr,

Merci Christian pour cette mise en application
https://www.locoduino.org/spip.php?article254

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1557
    • Voir le profil
Re : Il était temps !
« Réponse #3 le: mai 23, 2020, 10:37:49 am »
Rétropédalage sur la modif.

La version de GCC dans la dernière version de l'IDE ne semble pas vraiment au point en C++ 14. L'édition de liens échoue en râlant sur des fonctions delete implicites qui ne semble pas être engendrés
Cordialement