#include typedef enum Flags { FLAG_NONE = 0, FLAG_HUNGRY = 1 << 1, FLAG_THIRSTY = 1 << 2, FLAG_SLEEPY = 1 << 3, // TODO: add another flag }Flags; /* * Instead of shifting you can also just write the value * enum Flags * { * foo = 1, * bar = 2, * baz = 4, * } */ void Set(Flags *flag, Flags value) { // TODO: Implement this. } int isSet(Flags flag, Flags value) { // TODO: Implement this return 0; } typedef enum { GENDER_MALE, GENDER_FEMALE, }gender; typedef struct person { char *Name; int Age; gender Gender; Flags Condition; }person; int main(int argc, const char *argv[]) { person Charly = {"Charly", 10, GENDER_MALE, FLAG_NONE}; Set(&Charly.Condition, FLAG_HUNGRY|FLAG_SLEEPY); if(isSet(Charly.Condition, FLAG_SLEEPY)) { printf("Charly is sleepy."); } }