Skip to content
Gerd Heber edited this page Feb 10, 2016 · 3 revisions

Architecture Independent API Types

API Type .NET Type Where defined? Comment
haddr_t System.UInt64 H5public.h
hbool_t System.UInt32 H5public.h
herr_t System.Int32 H5public.h
hid_t System.Int[32,64] H5Ipublic.h 32-bit in HDF5 1.8, 64-bit in HDF5 1.10
hsize_t System.UInt64 H5public.h
hssize_t System.Int64 H5public.h
htri_t System.Int32 H5public.h

Architecture Dependent API Types

API Type .NET Type Where defined?
size_t System.IntPtr C-header files, e.g., stddef.h, stdlib.h, etc.
ssize_t System.IntPtr H5public.h

Strictly speaking, ssize_t is the signed version of size_t, and would be System.Int32 or System.Int64 on 32-bit or 64-bit architectures, respectively. In order to support AnyCPU builds, representing both as System.IntPtr seems to be worth the inconvenience of having to convert pointers to integers. (And the number of API calls with ssize_t arguments or returns is rather small.)