Petr
I am suggesting a better API would have a function something like
word AD1_GetValue16ByChannel(int channel);
which would return the value of the measurement for the particular ADC channel. This function is safe. It's just your basic "getter" function.
Whereas passing a pointer (as in the current implementation) requires that the caller has allocated a buffer of suitable size. If the buffer is too small, you have a problem.
I disagree about saving RAM, I think the current implementation would use more RAM, as the measurements are being buffered both in the driver and in the application code.