Alex Rivera | Logout

what does this mean in c int a:16;?

Asked 2011-01-16T16:34:01.070
12

What does this notation mean

int a:16;

I found it is code like this and it does compile.

struct name { int a:16; }

Edit
Report

1 Answer

19

This is a bitfield.

This particular bitfield doesn't make much sense as you just could use a 16-bit type and you're wasting some space as the bitfield is padded to the size of int.

Usually, you are using it for structures that contain elements of bit size:

struct {
    unsigned nibble1 : 4;
    unsigned nibble2 : 4;
}
answered 2011-01-16T16:34:44.883

Your Answer