Skip to content

Instantly share code, notes, and snippets.

@manodeep
Created November 20, 2019 06:31
Show Gist options
  • Save manodeep/ce3a98b2f03086c310287717b424c909 to your computer and use it in GitHub Desktop.
Save manodeep/ce3a98b2f03086c310287717b424c909 to your computer and use it in GitHub Desktop.
Getting size (in bytes) for some of the common HDF5 native datatypes
/* A code to print out the data size (in bytes) corresponding to the
common HDF5 native datatypes
Author: Manodeep Sinha
Date: 20/11/2019
Compile with `gcc -Wall -Wextra -std=c99 h5_dtype_sizes.c -o h5_dtype_sizes -lhdf5`
*/
#include <stdio.h>
#include <stdlib.h>
#include <hdf5.h>
#include <hdf5_hl.h>
#define GET_HDF5_SIZE(h5_dtype) { \
fprintf(stderr,"sizeof " #h5_dtype " is %zu bytes\n", H5Tget_size(h5_dtype)); \
}
int main(int argc, char **argv)
{
(void) argc, (void) argv;
GET_HDF5_SIZE(H5T_NATIVE_CHAR);
GET_HDF5_SIZE(H5T_NATIVE_SCHAR);
GET_HDF5_SIZE(H5T_NATIVE_UCHAR);
GET_HDF5_SIZE(H5T_NATIVE_SHORT);
GET_HDF5_SIZE(H5T_NATIVE_USHORT);
GET_HDF5_SIZE(H5T_NATIVE_INT);
GET_HDF5_SIZE(H5T_NATIVE_UINT);
GET_HDF5_SIZE(H5T_NATIVE_LONG);
GET_HDF5_SIZE(H5T_NATIVE_ULONG);
GET_HDF5_SIZE(H5T_NATIVE_LLONG);
GET_HDF5_SIZE(H5T_NATIVE_ULLONG);
GET_HDF5_SIZE(H5T_NATIVE_FLOAT);
GET_HDF5_SIZE(H5T_NATIVE_DOUBLE);
GET_HDF5_SIZE(H5T_NATIVE_LDOUBLE);
GET_HDF5_SIZE(H5T_NATIVE_HERR);
GET_HDF5_SIZE(H5T_NATIVE_HBOOL);
GET_HDF5_SIZE(H5T_NATIVE_INT8);
GET_HDF5_SIZE(H5T_NATIVE_UINT8);
GET_HDF5_SIZE(H5T_NATIVE_INT_LEAST8);
GET_HDF5_SIZE(H5T_NATIVE_UINT_LEAST8);
GET_HDF5_SIZE(H5T_NATIVE_INT_FAST8);
GET_HDF5_SIZE(H5T_NATIVE_UINT_FAST8);
GET_HDF5_SIZE(H5T_NATIVE_INT16);
GET_HDF5_SIZE(H5T_NATIVE_UINT16);
GET_HDF5_SIZE(H5T_NATIVE_INT_LEAST16);
GET_HDF5_SIZE(H5T_NATIVE_UINT_LEAST16);
GET_HDF5_SIZE(H5T_NATIVE_INT_FAST16);
GET_HDF5_SIZE(H5T_NATIVE_UINT_FAST16);
GET_HDF5_SIZE(H5T_NATIVE_INT32);
GET_HDF5_SIZE(H5T_NATIVE_UINT32);
GET_HDF5_SIZE(H5T_NATIVE_INT_LEAST32);
GET_HDF5_SIZE(H5T_NATIVE_UINT_LEAST32);
GET_HDF5_SIZE(H5T_NATIVE_INT_FAST32);
GET_HDF5_SIZE(H5T_NATIVE_UINT_FAST32);
GET_HDF5_SIZE(H5T_NATIVE_INT64);
GET_HDF5_SIZE(H5T_NATIVE_UINT64);
GET_HDF5_SIZE(H5T_NATIVE_INT_LEAST64);
GET_HDF5_SIZE(H5T_NATIVE_UINT_LEAST64);
GET_HDF5_SIZE(H5T_NATIVE_INT_FAST64);
GET_HDF5_SIZE(H5T_NATIVE_UINT_FAST64);
return EXIT_SUCCESS;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment