C'est ce que je reçois pour me dorloter avec des langages de programmation de haut niveau.Vous manipulez l'adresse d'une variable pour stocker un type plus petit?
I ont une fonction qui écrit une valeur de 32 bits dans une mémoire tampon, et un uint64_t
sur la pile. Le code suivant est-il un bon moyen de le stocker?
uint64_t size = 0;
// ...
getBytes((uint32_t*)&size+0x1);
Je suppose que ce serait le style canonique, coffre-fort:
uint64_t size = 0;
// ...
uint32_t smallSize;
getBytes(&smallSize);
size = smallSize;
Y a-t-il une raison pour laquelle vous utilisez un 'uint64_t' sur la pile au lieu d'un type 32 bits? –
@Justin Ethier, oui. Il existe des chemins de code pour deux environnements différents. L'un génère une valeur de 32 bits, l'autre génère une valeur de 64 bits. L'utilisation d'une variable 64 bits permet aux chemins de revenir ensemble. – s4y
Le deuxième exemple est en effet la bonne façon de le faire. – caf