Bit-field Flags Demo
C
Hard
4 views
Problem Description
Structure with 5 different status flags stored (isActive, isPaid, isVerified, etc.) using bit-fields. Memory saving calculated using vs normal approach.
Official Solution
#include <stdio.h>
// Structure with bit-fields (1 bit each)
struct StatusBitField {
unsigned int isActive : 1;
unsigned int isPaid : 1;
unsigned int isVerified : 1;
unsigned int isAdmin : 1;
unsigned int isBanned : 1;
};
// Normal structure (no bit-fields)
struct StatusNormal {
unsigned int isActive;
unsigned int isPaid;
unsigned int isVerified;
unsigned int isAdmin;
unsigned int isBanned;
};
int main() {
struct StatusBitField sBit;
struct StatusNormal sNormal;
printf("Size of structure with bit-fields: %lu bytesn", sizeof(sBit));
printf("Size of normal structure: %lu bytesn", sizeof(sNormal));
// Example of setting values
sBit.isActive = 1;
sBit.isPaid = 0;
sBit.isVerified = 1;
sBit.isAdmin = 0;
sBit.isBanned = 0;
printf("nBit-field values:n");
printf("isActive: %un", sBit.isActive);
printf("isPaid: %un", sBit.isPaid);
printf("isVerified: %un", sBit.isVerified);
printf("isAdmin: %un", sBit.isAdmin);
printf("isBanned: %un", sBit.isBanned);
return 0;
}
Solutions (0)
No solutions submitted yet. Be the first!
No comments yet. Start the discussion!