RicardasSim icon

uint64_t flags

RicardasSim | PRO | 09/13/19 04:41:32 PM UTC | 0 ⭐ | 723 👁️ | Never ⏰ | []
C |

11.32 KB

|

None

|

0 👍

/

0 👎

//-std=c99 -Wall -Wextra -Wpedantic -Wshadow
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
 
struct {
    uint64_t flag_1;
    uint64_t flag_2;
    uint64_t flag_3;
    uint64_t flag_4;
    uint64_t flag_5;
    uint64_t flag_6;
    uint64_t flag_7;
    uint64_t flag_8;
    uint64_t flag_9;
    uint64_t flag_10;
    uint64_t flag_11;
    uint64_t flag_12;
    uint64_t flag_13;
    uint64_t flag_14;
    uint64_t flag_15;
    uint64_t flag_16;
    uint64_t flag_17;
    uint64_t flag_18;
    uint64_t flag_19;
    uint64_t flag_20;
    uint64_t flag_21;
    uint64_t flag_22;
    uint64_t flag_23;
    uint64_t flag_24;
    uint64_t flag_25;
    uint64_t flag_26;
    uint64_t flag_27;
    uint64_t flag_28;
    uint64_t flag_29;
    uint64_t flag_30;
    uint64_t flag_31;
    uint64_t flag_32;
    uint64_t flag_33;
    uint64_t flag_34;
    uint64_t flag_35;
    uint64_t flag_36;
    uint64_t flag_37;
    uint64_t flag_38;
    uint64_t flag_39;
    uint64_t flag_40;
    uint64_t flag_41;
    uint64_t flag_42;
    uint64_t flag_43;
    uint64_t flag_44;
    uint64_t flag_45;
    uint64_t flag_46;
    uint64_t flag_47;
    uint64_t flag_48;
    uint64_t flag_49;
    uint64_t flag_50;
    uint64_t flag_51;
    uint64_t flag_52;
    uint64_t flag_53;
    uint64_t flag_54;
    uint64_t flag_55;
    uint64_t flag_56;
    uint64_t flag_57;
    uint64_t flag_58;
    uint64_t flag_59;
    uint64_t flag_60;
    uint64_t flag_61;
    uint64_t flag_62;
    uint64_t flag_63;
    uint64_t flag_64;
} fS = { 0x1,0x2,0x4,0x8,
         0x10,0x20,0x40,0x80,
         0x100,0x200,0x400,0x800,
         0x1000,0x2000,0x4000,0x8000,
         0x10000,0x20000,0x40000,0x80000,
         0x100000,0x200000,0x400000,0x800000,
         0x1000000,0x2000000,0x4000000,0x8000000,
         0x10000000,0x20000000,0x40000000,0x80000000,
         0x100000000,0x200000000,0x400000000,0x800000000,
         0x1000000000,0x2000000000,0x4000000000,0x8000000000,
         0x10000000000,0x20000000000,0x40000000000,0x80000000000,
         0x100000000000,0x200000000000,0x400000000000,0x800000000000,
         0x1000000000000,0x2000000000000,0x4000000000000,0x8000000000000,
         0x10000000000000,0x20000000000000,0x40000000000000,0x80000000000000,
         0x100000000000000,0x200000000000000,0x400000000000000,0x800000000000000,
         0x1000000000000000,0x2000000000000000,0x4000000000000000,0x8000000000000000,
        };
 
void tstFlg(uint64_t val)
{
 
    if (val & fS.flag_1) printf("1 ");
    if (val & fS.flag_2) printf("2 ");
    if (val & fS.flag_3) printf("3 ");
    if (val & fS.flag_4) printf("4 ");
    if (val & fS.flag_5) printf("5 ");
    if (val & fS.flag_6) printf("6 ");
    if (val & fS.flag_7) printf("7 ");
    if (val & fS.flag_8) printf("8 ");
    if (val & fS.flag_9) printf("9 ");
    if (val & fS.flag_10) printf("10 ");
    if (val & fS.flag_11) printf("11 ");
    if (val & fS.flag_12) printf("12 ");
    if (val & fS.flag_13) printf("13 ");
    if (val & fS.flag_14) printf("14 ");
    if (val & fS.flag_15) printf("15 ");
    if (val & fS.flag_16) printf("16 ");
    if (val & fS.flag_17) printf("17 ");
    if (val & fS.flag_18) printf("18 ");
    if (val & fS.flag_19) printf("19 ");
    if (val & fS.flag_20) printf("20 ");
    if (val & fS.flag_21) printf("21 ");
    if (val & fS.flag_22) printf("22 ");
    if (val & fS.flag_23) printf("23 ");
    if (val & fS.flag_24) printf("24 ");
    if (val & fS.flag_25) printf("25 ");
    if (val & fS.flag_26) printf("26 ");
    if (val & fS.flag_27) printf("27 ");
    if (val & fS.flag_28) printf("28 ");
    if (val & fS.flag_29) printf("29 ");
    if (val & fS.flag_30) printf("30 ");
    if (val & fS.flag_31) printf("31 ");
    if (val & fS.flag_32) printf("32 ");
    if (val & fS.flag_33) printf("33 ");
    if (val & fS.flag_34) printf("34 ");
    if (val & fS.flag_35) printf("35 ");
    if (val & fS.flag_36) printf("36 ");
    if (val & fS.flag_37) printf("37 ");
    if (val & fS.flag_38) printf("38 ");
    if (val & fS.flag_39) printf("39 ");
    if (val & fS.flag_40) printf("40 ");
    if (val & fS.flag_41) printf("41 ");
    if (val & fS.flag_42) printf("42 ");
    if (val & fS.flag_43) printf("43 ");
    if (val & fS.flag_44) printf("44 ");
    if (val & fS.flag_45) printf("45 ");
    if (val & fS.flag_46) printf("46 ");
    if (val & fS.flag_47) printf("47 ");
    if (val & fS.flag_48) printf("48 ");
    if (val & fS.flag_49) printf("49 ");
    if (val & fS.flag_50) printf("50 ");
    if (val & fS.flag_51) printf("51 ");
    if (val & fS.flag_52) printf("52 ");
    if (val & fS.flag_53) printf("53 ");
    if (val & fS.flag_54) printf("54 ");
    if (val & fS.flag_55) printf("55 ");
    if (val & fS.flag_56) printf("56 ");
    if (val & fS.flag_57) printf("57 ");
    if (val & fS.flag_58) printf("58 ");
    if (val & fS.flag_59) printf("59 ");
    if (val & fS.flag_60) printf("60 ");
    if (val & fS.flag_61) printf("61 ");
    if (val & fS.flag_62) printf("62 ");
    if (val & fS.flag_63) printf("63 ");
    if (val & fS.flag_64) printf("64 ");
 
    if(!val) printf("none");
 
    printf("\n");
 
}
 
 
 
    uint64_t another_flag_1 = 0x1;
    uint64_t another_flag_2 = 0x2;
    uint64_t another_flag_3 = 0x4;
    uint64_t another_flag_4 = 0x8;
    uint64_t another_flag_5 = 0x10;
    uint64_t another_flag_6 = 0x20;
    uint64_t another_flag_7 = 0x40;
    uint64_t another_flag_8 = 0x80;
    uint64_t another_flag_9 = 0x100;
    uint64_t another_flag_10 = 0x200;
    uint64_t another_flag_11 = 0x400;
    uint64_t another_flag_12 = 0x800;
    uint64_t another_flag_13 = 0x1000;
    uint64_t another_flag_14 = 0x2000;
    uint64_t another_flag_15 = 0x4000;
    uint64_t another_flag_16 = 0x8000;
    uint64_t another_flag_17 = 0x10000;
    uint64_t another_flag_18 = 0x20000;
    uint64_t another_flag_19 = 0x40000;
    uint64_t another_flag_20 = 0x80000;
    uint64_t another_flag_21 = 0x100000;
    uint64_t another_flag_22 = 0x200000;
    uint64_t another_flag_23 = 0x400000;
    uint64_t another_flag_24 = 0x800000;
    uint64_t another_flag_25 = 0x1000000;
    uint64_t another_flag_26 = 0x2000000;
    uint64_t another_flag_27 = 0x4000000;
    uint64_t another_flag_28 = 0x8000000;
    uint64_t another_flag_29 = 0x10000000;
    uint64_t another_flag_30 = 0x20000000;
    uint64_t another_flag_31 = 0x40000000;
    uint64_t another_flag_32 = 0x80000000;
    uint64_t another_flag_33 = 0x100000000;
    uint64_t another_flag_34 = 0x200000000;
    uint64_t another_flag_35 = 0x400000000;
    uint64_t another_flag_36 = 0x800000000;
    uint64_t another_flag_37 = 0x1000000000;
    uint64_t another_flag_38 = 0x2000000000;
    uint64_t another_flag_39 = 0x4000000000;
    uint64_t another_flag_40 = 0x8000000000;
    uint64_t another_flag_41 = 0x10000000000;
    uint64_t another_flag_42 = 0x20000000000;
    uint64_t another_flag_43 = 0x40000000000;
    uint64_t another_flag_44 = 0x80000000000;
    uint64_t another_flag_45 = 0x100000000000;
    uint64_t another_flag_46 = 0x200000000000;
    uint64_t another_flag_47 = 0x400000000000;
    uint64_t another_flag_48 = 0x800000000000;
    uint64_t another_flag_49 = 0x1000000000000;
    uint64_t another_flag_50 = 0x2000000000000;
    uint64_t another_flag_51 = 0x4000000000000;
    uint64_t another_flag_52 = 0x8000000000000;
    uint64_t another_flag_53 = 0x10000000000000;
    uint64_t another_flag_54 = 0x20000000000000;
    uint64_t another_flag_55 = 0x40000000000000;
    uint64_t another_flag_56 = 0x80000000000000;
    uint64_t another_flag_57 = 0x100000000000000;
    uint64_t another_flag_58 = 0x200000000000000;
    uint64_t another_flag_59 = 0x400000000000000;
    uint64_t another_flag_60 = 0x800000000000000;
    uint64_t another_flag_61 = 0x1000000000000000;
    uint64_t another_flag_62 = 0x2000000000000000;
    uint64_t another_flag_63 = 0x4000000000000000;
    uint64_t another_flag_64 = 0x8000000000000000;
 
void tstAnotherFlg(uint64_t val)
{
 
    if (val & another_flag_1) printf("1 ");
    if (val & another_flag_2) printf("2 ");
    if (val & another_flag_3) printf("3 ");
    if (val & another_flag_4) printf("4 ");
    if (val & another_flag_5) printf("5 ");
    if (val & another_flag_6) printf("6 ");
    if (val & another_flag_7) printf("7 ");
    if (val & another_flag_8) printf("8 ");
    if (val & another_flag_9) printf("9 ");
    if (val & another_flag_10) printf("10 ");
    if (val & another_flag_11) printf("11 ");
    if (val & another_flag_12) printf("12 ");
    if (val & another_flag_13) printf("13 ");
    if (val & another_flag_14) printf("14 ");
    if (val & another_flag_15) printf("15 ");
    if (val & another_flag_16) printf("16 ");
    if (val & another_flag_17) printf("17 ");
    if (val & another_flag_18) printf("18 ");
    if (val & another_flag_19) printf("19 ");
    if (val & another_flag_20) printf("20 ");
    if (val & another_flag_21) printf("21 ");
    if (val & another_flag_22) printf("22 ");
    if (val & another_flag_23) printf("23 ");
    if (val & another_flag_24) printf("24 ");
    if (val & another_flag_25) printf("25 ");
    if (val & another_flag_26) printf("26 ");
    if (val & another_flag_27) printf("27 ");
    if (val & another_flag_28) printf("28 ");
    if (val & another_flag_29) printf("29 ");
    if (val & another_flag_30) printf("30 ");
    if (val & another_flag_31) printf("31 ");
    if (val & another_flag_32) printf("32 ");
    if (val & another_flag_33) printf("33 ");
    if (val & another_flag_34) printf("34 ");
    if (val & another_flag_35) printf("35 ");
    if (val & another_flag_36) printf("36 ");
    if (val & another_flag_37) printf("37 ");
    if (val & another_flag_38) printf("38 ");
    if (val & another_flag_39) printf("39 ");
    if (val & another_flag_40) printf("40 ");
    if (val & another_flag_41) printf("41 ");
    if (val & another_flag_42) printf("42 ");
    if (val & another_flag_43) printf("43 ");
    if (val & another_flag_44) printf("44 ");
    if (val & another_flag_45) printf("45 ");
    if (val & another_flag_46) printf("46 ");
    if (val & another_flag_47) printf("47 ");
    if (val & another_flag_48) printf("48 ");
    if (val & another_flag_49) printf("49 ");
    if (val & another_flag_50) printf("50 ");
    if (val & another_flag_51) printf("51 ");
    if (val & another_flag_52) printf("52 ");
    if (val & another_flag_53) printf("53 ");
    if (val & another_flag_54) printf("54 ");
    if (val & another_flag_55) printf("55 ");
    if (val & another_flag_56) printf("56 ");
    if (val & another_flag_57) printf("57 ");
    if (val & another_flag_58) printf("58 ");
    if (val & another_flag_59) printf("59 ");
    if (val & another_flag_60) printf("60 ");
    if (val & another_flag_61) printf("61 ");
    if (val & another_flag_62) printf("62 ");
    if (val & another_flag_63) printf("63 ");
    if (val & another_flag_64) printf("64 ");
 
    if(!val) printf("none");
 
    printf("\n");
 
}
 
int main()
{
 
    tstFlg(fS.flag_12|fS.flag_64);
    tstFlg(fS.flag_1|fS.flag_18|fS.flag_21|fS.flag_40);
    tstFlg(0);
 
    tstAnotherFlg(another_flag_12|another_flag_64);
    tstAnotherFlg(another_flag_1|another_flag_18|another_flag_21|another_flag_40);
    tstAnotherFlg(0);
 
    return 0;
}
 
/*
output:
 
12 64 
1 18 21 40 
none
12 64 
1 18 21 40 
none
 
 
*/

Comments