why doesn't the definition match the implementation? uint32_t crc32(uint32_t crc, const void *buf, size_t size); unsigned int crc32(unsigned int crc, const void *buf, size_t size) { };