📄 struct-align-1_x.c
字号:
#include "compat-common.h"#include "struct-align-1.h"#define SETUP(NAME,V1,V2,V3) \char v1_##NAME = V1; \double v2_##NAME = V2; \int v3_##NAME = V3; \ \struct B1_##NAME b1_##NAME = { V1, V2 }; \struct B2_##NAME b2_##NAME = { V1, { V2 } }; \struct B3_##NAME b3_##NAME = { V1, { V2, V3 } }; \ \struct B1_##NAME ab1_##NAME[2] = \ { { V1, V2 }, { V1, V2 } }; \struct B2_##NAME ab2_##NAME[2] = \ { { V1, { V2 } }, { V1, { V2 } } }; \struct B3_##NAME ab3_##NAME[2] = \ { { V1, { V2, V3 } }, { V1, { V2, V3 } } }; \ \extern void test_##NAME (void); \extern void checkp1_##NAME (struct B1_##NAME *); \extern void checkp2_##NAME (struct B2_##NAME *); \extern void checkp3_##NAME (struct B3_##NAME *); \extern void checkg1_##NAME (void); \extern void checkg2_##NAME (void); \extern void checkg3_##NAME (void); \ \void \pass1_##NAME (struct B1_##NAME s) \{ \ checkp1_##NAME (&s); \} \ \void \pass2_##NAME (struct B2_##NAME s) \{ \ checkp2_##NAME (&s); \} \ \void \pass3_##NAME (struct B3_##NAME s) \{ \ checkp3_##NAME (&s); \} \ \struct B1_##NAME \return1_##NAME (void) \{ \ return ab1_##NAME[0]; \} \ \struct B2_##NAME \return2_##NAME (void) \{ \ return ab2_##NAME[0]; \} \ \struct B3_##NAME \return3_##NAME (void) \{ \ return ab3_##NAME[0]; \}#define CHECK(NAME) test_##NAME()#if __INT_MAX__ > 32767SETUP (orig, 49, 1.0, 111111)#elseSETUP (orig, 49, 1.0, 1111)#endif#ifndef SKIP_ATTRIBUTE#if __INT_MAX__ > 32767SETUP (p_all, 50, 2.0, 222222)SETUP (p_inner, 51, 3.0, 333333)SETUP (p_outer, 52, 4.0, 444444)SETUP (a_max, 53, 5.0, 555555)SETUP (m_outer_p_inner, 54, 6.0, 666666)SETUP (m_inner_p_outer, 55, 7.0, 777777)#elseSETUP (p_all, 50, 2.0, 2222)SETUP (p_inner, 51, 3.0, 3333)SETUP (p_outer, 52, 4.0, 4444)SETUP (a_max, 53, 5.0, 5555)SETUP (m_outer_p_inner, 54, 6.0, 6666)SETUP (m_inner_p_outer, 55, 7.0, 7777)#endif#endifvoidstruct_align_1_x (void){ DEBUG_INIT CHECK (orig);#ifndef SKIP_ATTRIBUTE CHECK (p_all); CHECK (p_inner); CHECK (p_outer); CHECK (a_max); CHECK (m_outer_p_inner); CHECK (m_inner_p_outer);#endif DEBUG_FINI if (fails != 0) abort ();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -