home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / utilities / utilss / sprtools / unix / endian_c next >
Text File  |  1994-07-18  |  1KB  |  68 lines

  1. /************************************************************************
  2.  *                                    *
  3.  * endian.c                                *
  4.  *                                    *
  5.  * test of endian and word alignment/structure padding            *
  6.  *                                    *
  7.  * Version 0.10 (15-Oct-1993)                                           *
  8.  *                                                                      *
  9.  ************************************************************************/
  10.  
  11. #include <stdio.h>
  12.  
  13. typedef struct
  14. {
  15.     int    dword1;
  16.     short    word1;
  17.     short    word2;
  18.     short    word3;
  19.     int    dword2;
  20. } align_str;
  21.  
  22. typedef struct
  23. {
  24.     short    word1;
  25.     char    byte;
  26.     short    word2;
  27. } word_str;
  28.  
  29. typedef struct
  30. {
  31.     int    dword1;
  32.     char    byte;
  33.     int    dword2;
  34. } dword_str;
  35.  
  36. int main(void)
  37. {
  38.     char        array[4];
  39.     align_str    align;
  40.     word_str    wtest;
  41.     dword_str    dwtest;
  42.     int        word_align;
  43.     int        dword_align;
  44.     int        word_pad;
  45.     int        dword_pad;
  46.  
  47.     array[0] = 0x12;
  48.     array[1] = 0x34;
  49.     array[2] = 0x56;
  50.     array[3] = 0x78;
  51.  
  52.     if(*((int*)array) == 0x12345678)
  53.         printf("endian         : big    (0x%8X)\n",*((int*)array));
  54.     else
  55.         printf("endian         : little (0x%8X)\n",*((int*)array));
  56.  
  57.     word_align  = (int)&align.word2   - (int)&align.word1;
  58.     word_pad    = (int)&wtest.word2   - (int)&wtest.word1  -2;
  59.     dword_align = (int)&align.dword2  - (int)&align.word3;
  60.     dword_pad   = (int)&dwtest.dword2 - (int)&dwtest.dword1 -4;
  61.  
  62.     printf("word alignment : %d\n",word_align);
  63.     printf("word padding   : %d\n",word_pad);
  64.     printf("dword alignment: %d\n",dword_align);
  65.     printf("dword padding  : %d\n",dword_pad);
  66.  
  67. }
  68.