Be given the code below:
#include%26lt;stdio.h%26gt;
struct test{
unsigned a:3, b, c;
};
void main(){
struct test x;
x.a = x.b = x.c = 10;
printf("%d %d %d ", x.a, x.b, x.c);
x.c = x.a = x.b = 10;
printf("%d %d %d", x.a, x.b, x.c);
}
/*
PRINTS:
2 10 10 2 10 2
*/
After laborious Google searches, still couldn't find exactly what the ":" in "a:3" struct declaration does. Anyone have an idea?
C code question (about variable assignment)?
It's for so-called "bit fields".
:: unsigned a:3;
basically means that variable 'a' will be three bits wide.
It's almost as evil as goto (because its completely unportable), so you shouldn't use it for real software.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment