void c_writeComplex64(double* ptr, double real, double imag);
double c_getComplex64Real(double* ptr);
double c_getComplex64Imag(double* ptr);
void c_writeComplex32(float* ptr, float real, float imag);
float c_getComplex32Real(float* ptr);
float c_getComplex32Imag(float* ptr);


float c_readFloat32(float* ptr);
double c_readFloat64(double* ptr);
unsigned char c_readUInt8(unsigned char* ptr);
unsigned short c_readUInt16(unsigned short* ptr);
unsigned int c_readUInt32(unsigned int* ptr);
unsigned long c_readUInt64(unsigned long* ptr);
signed char c_readInt8(signed char* ptr);
signed short c_readInt16(signed short* ptr);
signed int c_readInt32(signed int* ptr);
signed long c_readInt64(signed long* ptr);

void c_writeFloat32(float* ptr, float val);
void c_writeFloat64(double* ptr, double val);
void c_writeUInt8(unsigned char* ptr, unsigned char val);
void c_writeUInt16(unsigned short* ptr, unsigned short val);
void c_writeUInt32(unsigned int* ptr, unsigned int val);
void c_writeUInt64(unsigned long* ptr, unsigned long val);
void c_writeInt8(signed char* ptr, signed char val);
void c_writeInt16(signed short* ptr, signed short val);
void c_writeInt32(signed int* ptr, signed int val);
void c_writeInt64(signed long* ptr, signed long val);