Que signifie cette ligne de code en C++

Inscrit
14 Mars 2015
Messages
68
Reactions
0
#1
Bonjour j'aimerais savoir ce que fait cette ligne de code , C'est de C++, j'essaye de la reproduire en vb

1)

C:
        uint8_t nano_type = data[pos];
        uint8_t nano_length = data[pos+1];
uint8_t* nano_data = data + pos + 2
data est un tableau de byte et pos est entier

2)

C:
memcpy(dw, nano_data + 4 + 8, 8);
memcpy(dw + 8, nano_data + 4, 8);
 
Dernière édition:
Inscrit
21 Octobre 2016
Messages
6
Reactions
0
#2
C:
        // Récupère le byte à la position 'pos' dans le tableau data
        // Le byte est interpreté comme un "type"
        uint8_t nano_type = data[pos];
        // Récupère le byte à la position 'pos + 1' dans le tableau data
        // Le byte est interpreté comme une longueur
        uint8_t nano_length = data[pos+1];
        // Récupère un pointer vers le byte à la position 'pos + 2' dans le tableau data
        // C'est équivalent à &data[pos + 2]
        uint8_t* nano_data = data + pos + 2
Donc les bytes qui suivent les deux premiers bytes sont les données en tant que telles. La troisième ligne retourne le tableau data sans ses deux premiers bytes. On a donc:
C:
  nano_data[i] = data[i+2]
 
Haut Bas