#include "hdf5.h"

main()
{

  union {
          hsize_t a;
          char    ch[8];
  } u;

  herr_t   status = -1;  
  size_t   i, n = 1;

  union {
         int b;
         char ch[4];
  } u2;

  u.a = 'abcd';

  printf("Size of \"hsize_t\" datatype = %d (bytes) \n", H5Tget_size(H5T_NATIVE_HSIZE));				
  printf("Size of \"int\" datatype = %d (bytes) \n", H5Tget_size(H5T_NATIVE_INT));

  printf ("\nValue before Convert:\n");
  for (i = 0; i < 8; i++)
      printf("%x ", u.ch[i]&0xff);
  printf ("\n");
  status = H5Tconvert(H5T_NATIVE_HSIZE, H5T_NATIVE_INT, n, &u.a, NULL, H5P_DEFAULT);
  printf("\nStatus returned by H5Tconvert() :  %d \n", status );

  printf ("\nValue after Convert:\n");
  for (i = 0; i < 8; i++)
      printf("%x ", u.ch[i]&0xff);

  printf ("\n");

  memcpy (&u2.b, &u.a, 1*(H5Tget_size(H5T_NATIVE_INT)));


  printf ("\nAfter memcpy:\n");
  for (i = 0; i <4; i++) 
      printf("%x ", u2.ch[i]&0xff);
  printf ("\n");

  
  return 0;
}

