#import @interface HasBitfield : NSObject { @public unsigned field1 : 1; unsigned field2 : 1; }; -(id)init; @end @implementation HasBitfield -(id)init { self = [super init]; field1 = 0; field2 = 1; return self; } @end @interface ContainsAHasBitfield : NSObject { @public HasBitfield *hb; }; -(id)init; @end @implementation ContainsAHasBitfield -(id)init { self = [super init]; hb = [[HasBitfield alloc] init]; return self; } @end @interface HasBitfield2 : NSObject { @public unsigned int x; unsigned field1 : 15; unsigned field2 : 4; unsigned field3 : 4; } @end @implementation HasBitfield2 - (id)init { return (self = [super init]); } @end int main(int argc, const char * argv[]) { ContainsAHasBitfield *chb = [[ContainsAHasBitfield alloc] init]; HasBitfield2 *hb2 = [[HasBitfield2 alloc] init]; hb2->x = 100; hb2->field1 = 10; hb2->field2 = 3; hb2->field3 = 4; return 0; // break here }