Code:
int i;
uint8_t data[SIZE_OF_DATA];
...
uint16_t crc = 0xffff;
for (i=0;i<SIZE_OF_DATA;i++)
    crc = crc16_update(crc,data[i]);
Ich denke, das macht es klarer, als irgendwelche langen Erklärungen.
Die anderen Funktionen in crc.h gehen genau so, es sind nur unterschiedliche CRC-Algorithmen.