Bonjour ,
J'ai du mal à comprendre cette macro :
Le problème est surtout sur la signification de 0##x.Code:#define UTIL_BIN4(x) (unsigned char)((0##x & 01000)/64 + (0##x & 0100)/16 + (0##x & 010)/4 + (0##x & 1))
Merci
Version imprimable
Bonjour ,
J'ai du mal à comprendre cette macro :
Le problème est surtout sur la signification de 0##x.Code:#define UTIL_BIN4(x) (unsigned char)((0##x & 01000)/64 + (0##x & 0100)/16 + (0##x & 010)/4 + (0##x & 1))
Merci
## sert à concaténer deux éléments : https://fr.wikipedia.org/wiki/Pr%C3%...tion_de_tokens 0##x sera donc remplacer par 0x.
Le reste n'est que calcul.
pour être précis, ce sera remplacé par 0 concaténé à la valeur de x.
Ce qui en fera donc des nombres exprimés en octal, comme l'argument à droite de chaque &.