RT, la dernière affectation de cette structure écrasera l'affectation précédente, donc je suis curieux de savoir dans quels scénarios ce genre de chose est généralement utilisé ?
Le but initial était d'économiser de la mémoire. Si vous y réfléchissez bien, le langage C n'a commencé à être utilisé à grande échelle que dans les années 1980, et la mémoire était très précieuse à cette époque.
Peut fournir différentes interfaces d'accès à la même donnée. . . Par exemple, lorsque vous faisiez du travail embarqué, vous pourriez écrire comme ceci :
Cependant, il n'est pas très concis d'écrire de cette façon, et l'efficacité de ce code sur PC est la même que la récupération directe de chaque octet par décalage de bits. Juste un exemple, ne vous y attardez pas trop.
Économisez la mémoire et facilitez l'accès aux octets hauts et bas
Le but initial était d'économiser de la mémoire. Si vous y réfléchissez bien, le langage C n'a commencé à être utilisé à grande échelle que dans les années 1980, et la mémoire était très précieuse à cette époque.
Peut fournir différentes interfaces d'accès à la même donnée. . .
Par exemple, lorsque vous faisiez du travail embarqué, vous pourriez écrire comme ceci :
Cependant, il n'est pas très concis d'écrire de cette façon, et l'efficacité de ce code sur PC est la même que la récupération directe de chaque octet par décalage de bits. Juste un exemple, ne vous y attardez pas trop.
Généralement utilisé pour déterminer les grandes et petites extrémités
Il est souvent utilisé dans le développement embarqué. Permettez-moi de donner ici un exemple similaire à celui de @zonxin ci-dessus
.Pour lire l'intégralité du registre, vous pouvez lire la valeur. Pour écrire différents fichiers de bits, utilisez reg_des_bit pour écrire.