Dupliquer possible:
Que signifie 'unsigned temp: 3'J'apprends un peu le code du noyau et voici la ligne suivante (sous linux 2.4, sched.h, struct mm_struct):
unsigned dumpable:1;
Qu'est-ce que ça veut dire?
Réponses
Trop de publicités?C'est un champ de bits membre. Votre code signifie que l' dumpable
occupe exactement bit à 1 dans la structure.
Bitfields sont utilisés lorsque vous souhaitez membres de la meute au niveau des bits. Cela peut réduire considérablement la taille de la mémoire utilisée lorsqu'il y a beaucoup de drapeaux dans la structure. Par exemple, si nous définissons une structure disposant de 4 membres de la contrainte numérique
0 < a < 20
b in [0, 1]
0 < c < 8
0 < d < 100
ensuite, la structure pourrait être déclaré comme
struct Foo {
unsigned a : 5; // 20 < 2^5 = 32
unsigned b : 1; //
unsigned c : 3; //
unsigned d : 7; // 100 < 2^7 = 128
};
puis les bits de Foo peuvent être disposés comme
ddddddd c cc b aaaaa
--------- --------- --------- ----------
octet 1 octet 0
===========================================
uint32
au lieu de
struct Foo {
unsigned a;
unsigned b;
unsigned c;
unsigned d;
};
dans lequel de nombreux bits sont gaspillées en raison de la gamme de valeurs
# wasted space which is not used by the program
# v v
ddddddd ccc
------------------------------------ ------------------------------------
uint32 uint32
b aaaaa
------------------------------------ ------------------------------------
uint32 uint32
ainsi, vous pouvez économiser de l'espace par l'emballage de nombreux membres de l'ensemble.
Notez que la norme ne précise pas comment le bitfields sont arrangés ou emballés dans une "adressable de l'unité de stockage". Aussi, bitfields sont plus lent par rapport direct avec l'accès des membres.
Cela signifie qu’il s’agit d’un champ de bits - c’est-à-dire que la taille du fichier pouvant être jeté est un bit unique et que vous ne pouvez lui affecter que 0 ou 1. Normalement utilisé dans l'ancien code pour économiser de l'espace, ou dans le code de bas niveau qui s'interface avec le matériel (même si l'emballage n'est pas portable). Voir ici pour plus d'informations