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

📄 align.c

📁 gcc-you can use this code to learn something about gcc, and inquire further into linux,
💻 C
字号:
// Skip if not target: i?86-*-linux* i?86-*-freebsd*// Special g++ Options: -malign-double// Origin: Alex Samuel <samuel@codesourcery.com>/* Test the size and alignment of fundamental C types for compliance   with the IA-64 ABI.  */template<typename T>inline unsignedalignmentof (){  struct S  {    char start_;    T object_;  };  return (unsigned) & ((S *) 0)->object_;}/* Computes the alignment, in bytes, of TYPE.  */#define alignof(type) (alignmentof<type> ())enum A { a };intmain (){  if (sizeof  (char)                    !=  1)    return 1;  if (alignof (char)                    !=  1)    return 2;  if (sizeof  (signed char)             !=  1)    return 3;  if (alignof (signed char)             !=  1)    return 4;  if (sizeof  (unsigned char)           !=  1)    return 5;    if (alignof (unsigned char)           !=  1)    return 6;  if (sizeof  (short)                   !=  2)    return 7;  if (alignof (short)                   !=  2)    return 8;  if (sizeof  (signed short)            !=  2)    return 9;  if (alignof (signed short)            !=  2)    return 10;  if (sizeof  (unsigned short)          !=  2)    return 11;  if (alignof (unsigned short)          !=  2)    return 12;  if (sizeof  (int)                     !=  4)    return 13;  if (alignof (int)                     !=  4)    return 14;  if (sizeof  (signed int)              !=  4)    return 15;  if (alignof (signed int)              !=  4)    return 16;  if (sizeof  (unsigned int)            !=  4)    return 17;  if (alignof (unsigned int)            !=  4)    return 18;  if (sizeof  (enum A)                  !=  4)    return 19;  if (alignof (enum A)                  !=  4)    return 20;#ifdef HAVE_IA64_TYPES  if (sizeof  (__int64)                 !=  8)    return 21;  if (alignof (__int64)                 !=  8)    return 22;  if (sizeof  (signed __int64)          !=  8)    return 23;  if (alignof (signed ___int64)         !=  8)    return 24;  if (sizeof  (unsigned __int64)        !=  8)    return 25;  if (alignof (unsigned __int64)        !=  8)    return 26;  if (sizeof  (__int128)                != 16)    return 27;  if (alignof (__int128)                != 16)    return 28;  if (sizeof  (signed __int128)         != 16)    return 29;  if (alignof (signed ___int128)        != 16)    return 30;  if (sizeof  (unsigned __int128)       != 16)    return 31;  if (alignof (unsigned ___int128)      != 16)    return 32;#endif  /* HAVE_IA64_TYPES  */  if (sizeof  (void *)                  !=  4)    return 33;  if (alignof (void *)                  !=  4)    return 34;  if (sizeof  (void (*) ())             !=  4)    return 35;  if (alignof (void (*) ())             !=  4)    return 36;  if (sizeof  (float)                   !=  4)    return 37;  if (alignof (float)                   !=  4)    return 38;  if (sizeof  (double)                  !=  8)    return 39;  if (alignof (double)                  !=  8)    return 40;#ifdef HAVE_IA64_TYPES  if (sizeof  (__float80)               != 16)    return 41;  if (alignof (__float80)               != 16)    return 42;  if (sizeof  (__float128)              != 16)    return 43;  if (alignof (__float128)              != 16)    return 44;#endif  /* HAVE_IA64_TYPES  */  return 0;}

⌨️ 快捷键说明

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