Bonjour,
Cette syntaxe permet de définir des champs de bits.
Dans ton exemple, Membre1 est un champ de 48 bits ( sur un entier non signé de 64 bits )et Membre2 est un champ de 16 bits ( sur un entier non signé de 32 bits ).
Par contre ces champs de bits ne sont pas "packés", c'est-à-dire qu'il ne sont consécutifs en mémoire ; pour cela il aurait fallu les déclarer comme suit :
Code C/C++ :
typedef struct {
ULONGLONG Member1:48; //48 premiers bits d'un 64 bits
ULONGLONG Member2:16; //16 bits suivants
} MASTRUCT,*LPMASTRUCT;
Par conséquent, dans ton exemple la définition des champs de bits est inutile.
Cordialement,
Lucky92.