in C the value of the bit is in the according variable as declared between brackets
so the 1 or 0 value is in limit* variables, if there is a value that is not 0 or 1 in limit* variables, your compiler is probably too old

(or you miswritten the struct declaration)
so to test bits you just have to do something like this:
if( limit_* ) { ... }
in my example, the range of possible value of blabla is 0-16 for example, the declared type (unsigned int or int) is just a way for the compiler to know how to interpret the value
another way if you don't want to use C, is to use binary and
to get the first bit you can do:
(Value AND 2^0) = 0 if bit 0 is 0 else bit 0 is 1
(Value AND 2^1) = 0 if bit 1 is 0 else bit 1 is 1
(Value AND 2^2) = 0 if bit 2 is 0 else bit 2 is 1
...
where Value is the value of the flags (as the 1C 3C 00 00)