if(NULL == (memb_list[u] = H5T__get_native_type(memb_type, direction, &children_st_align, &(memb_offset[u]), &children_size)))
 
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Copyright by The HDF Group.                                               *
 * Copyright by the Board of Trustees of the University of Illinois.         *
 * All rights reserved.                                                      *
 *                                                                           *
 * This file is part of HDF5.  The full HDF5 copyright notice, including     *
 * terms governing use, modification, and redistribution, is contained in    *
 * the COPYING file, which can be found at the root of the source code       *
 * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.  *
 * If you do not have access to either file, you may request a copy from     *
 * help@hdfgroup.org.                                                        *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
 * Module Info: This module contains the functionality for querying
 *      a "native" datatype for the H5T interface.
 */
#include "H5Tmodule.h"          /* This source code file is part of the H5T module */
#include "H5private.h"      /* Generic Functions            */
#include "H5CXprivate.h"        /* API Contexts                         */
#include "H5Eprivate.h"     /* Error handling           */
#include "H5Iprivate.h"     /* IDs                  */
#include "H5Pprivate.h"     /* Property lists           */
#include "H5MMprivate.h"    /* Memory management            */
#include "H5Tpkg.h"     /* Datatypes                */
/* Static local functions */
static H5T_t *H5T__get_native_type(H5T_t *dt, H5T_direction_t direction,
    size_t *struct_align, size_t *offset, size_t *comp_size);
static H5T_t *H5T__get_native_integer(size_t prec, H5T_sign_t sign,
    H5T_direction_t direction, size_t *struct_align, size_t *offset,
    size_t *comp_size);
static H5T_t *H5T__get_native_float(size_t size, H5T_direction_t direction,
    size_t *struct_align, size_t *offset, size_t *comp_size);
static H5T_t* H5T__get_native_bitfield(size_t prec, H5T_direction_t direction,
    size_t *struct_align, size_t *offset, size_t *comp_size);
static herr_t H5T__cmp_offset(size_t *comp_size, size_t *offset, size_t elem_size,
    size_t nelems, size_t align, size_t *struct_align);
/*-------------------------------------------------------------------------
 * Function:    H5Tget_native_type
 *
 * Purpose:     High-level API to return the native type of a datatype.
 *              The native type is chosen by matching the size and class of
 *              querried datatype from the following native premitive
 *              datatypes: