bitfield-1.m
来自「this is a gcc file, you can download it 」· M 代码 · 共 81 行
M
81 行
/* Check if bitfield ivars are inherited correctly (i.e., without being "promoted" to ints). *//* Contributed by Ziemowit Laski <zlaski@apple.com>. *//* { dg-do run } */#include <objc/objc.h>#include <objc/Object.h>extern void abort(void);#define CHECK_IF(expr) if(!(expr)) abort();@interface Base: Object { int full; int full2: 32; int _refs: 8; int field2: 3; unsigned f3: 8; short cc; unsigned g: 16; int r2: 8; int r3: 8; int r4: 2; int r5: 8; char c;}- (void)setValues;@end@interface Derived: Base{ char d; int _field3: 6;}- (void)checkValues;@end@implementation Base-(void)setValues { full = 1; full2 = 2; _refs = 3; field2 = 1; f3 = 6; cc = 7; g = 8; r2 = 9; r3 = 10; r4 = 1; r5 = 12; c = 13;}@end@implementation Derived-(void)checkValues { CHECK_IF(full == 1); CHECK_IF(full2 == 2); CHECK_IF(_refs == 3); CHECK_IF(field2 == 1); CHECK_IF(f3 == 6); CHECK_IF(cc == 7); CHECK_IF(g == 8); CHECK_IF(r2 == 9); CHECK_IF(r3 == 10); CHECK_IF(r4 == 1); CHECK_IF(r5 == 12); CHECK_IF(c == 13);}@endint main(void) { Derived *obj = [[Derived alloc] init]; [obj setValues]; [obj checkValues]; return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?