- 1 #defineCAT_TOKEN_1(t1,t2) t1##t2 2 #defineCAT_TOKEN(t1,t2) CAT_TOKEN_1(t1,t2) 3
- 4 #defineCOMPILE_ASSERT(x) 5 enum{CAT_TOKEN (comp_assert_at_line_, __LINE__) =1/ !!(x) };
- 6
- 7 #ifndef CHECK_SIZE
- 8 #defineCHECK_SIZE(type, size) extern int sizeof_##type##_is_##size [!!(sizeof(type)==(size_t)size) - 1] 9 #endif//CHECK_SIZE
- 10
- 11 #ifndef CHECK_OFFSET
- 12 #defineCHECK_OFFSET(type, member, value)13 extern int offset_of_##member##_in_##type##_is_##value 14[!!(__builtin_offsetof(type,member)==((size_t)(value))) -1]
- 15 #endif//CHECK_OFFSET
来源: