⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 struct-align-1_y.c

📁 linux下编程用 编译软件
💻 C
字号:
#include "compat-common.h"#include "struct-align-1.h"#define TEST(NAME)						\extern char v1_##NAME;						\extern double v2_##NAME;					\extern int v3_##NAME;						\								\extern struct B1_##NAME b1_##NAME, ab1_##NAME[2];		\extern struct B2_##NAME b2_##NAME, ab2_##NAME[2];		\extern struct B3_##NAME b3_##NAME, ab3_##NAME[2];		\								\extern void pass1_##NAME (struct B1_##NAME);			\extern void pass2_##NAME (struct B2_##NAME);			\extern void pass3_##NAME (struct B3_##NAME);			\extern struct B1_##NAME return1_##NAME (void);			\extern struct B2_##NAME return2_##NAME (void);			\extern struct B3_##NAME return3_##NAME (void);			\								\void								\checkp1_##NAME (struct B1_##NAME *p)				\{								\  if (p->c != v1_##NAME)					\    DEBUG_CHECK;						\  if (p->d != v2_##NAME)					\    DEBUG_CHECK;						\}								\								\void								\checkp2_##NAME (struct B2_##NAME *p)				\{								\  if (p->c != v1_##NAME)					\    DEBUG_CHECK;						\  if (p->a2.d != v2_##NAME)					\    DEBUG_CHECK;						\}								\								\void								\checkp3_##NAME (struct B3_##NAME *p)				\{								\  if (p->c != v1_##NAME)					\    DEBUG_CHECK;						\  if (p->a3.d != v2_##NAME)					\    DEBUG_CHECK;						\  if (p->a3.i != v3_##NAME)					\    DEBUG_CHECK;						\}								\								\void								\test_##NAME (void)						\{								\  struct B1_##NAME s1;						\  struct B2_##NAME s2;						\  struct B3_##NAME s3;						\  DEBUG_FPUTS (DESC_##NAME);					\  DEBUG_NL;							\  DEBUG_FPUTS ("  global variable");				\  checkp1_##NAME (&b1_##NAME);					\  checkp2_##NAME (&b2_##NAME);					\  checkp3_##NAME (&b3_##NAME);					\  DEBUG_NL;							\  DEBUG_FPUTS ("  global array");				\  checkp1_##NAME (&ab1_##NAME[1]);				\  checkp2_##NAME (&ab2_##NAME[1]);				\  checkp3_##NAME (&ab3_##NAME[1]);				\  DEBUG_NL;							\  DEBUG_FPUTS ("  argument");					\  pass1_##NAME (b1_##NAME);					\  pass2_##NAME (b2_##NAME);					\  pass3_##NAME (b3_##NAME);					\  DEBUG_NL;							\  DEBUG_FPUTS ("  function result");				\  s1 = return1_##NAME ();					\  checkp1_##NAME (&s1);						\  s2 = return2_##NAME ();					\  checkp2_##NAME (&s2);						\  s3 = return3_##NAME ();					\  checkp3_##NAME (&s3);						\  DEBUG_NL;							\}TEST (orig)#ifndef SKIP_ATTRIBUTETEST (p_all)TEST (p_inner)TEST (p_outer)TEST (a_max)TEST (m_outer_p_inner)TEST (m_inner_p_outer)#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -