LOCODUINO

Discussions Générales => Discussions ouvertes => Discussion démarrée par: Jean-Luc le mai 21, 2020, 12:15:39 pm

Titre: Il était temps !
Posté par: Jean-Luc 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
Titre: Re : Il était temps !
Posté par: Didier44 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
Titre: Re : Il était temps !
Posté par: Souris verte le mai 22, 2020, 10:31:31 am
Bjr,

Merci Christian pour cette mise en application
 https://www.locoduino.org/spip.php?article254 (https://www.locoduino.org/spip.php?article254)
Titre: Re : Il était temps !
Posté par: Jean-Luc 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