word() 函数是什么?

What is the word() function?

我正在尝试转换一些 C++ 函数以在我的 python 脚本中使用并偶然发现了这个:

int Crc16(args...)
{
   // Some calulations

   return (int)word(~ByteHi,~ByteLow)
}

这是我需要的CRC16计算器的结尾,我不知道这个return是做什么的?特别是“单词”功能。 ~ 是按位补码,最后的数字 returned 是一个整数。我在搜索此 word() 函数时没有找到任何内容。你能帮帮我吗?

它不是标准的 C 或 C++(a) 但是,给定上下文(CRC16 和变量名),它几乎肯定需要两个 8 位字节并形成一个 16 -位字.


(a) 因此它可能在您可用的库或源代码中的某处定义。

根据您展示的用法,我假设它从两个字节创建了一个 16 位值。它不是 c/c++ 的一部分。可能是您代码中定义的某些函数。

uint16_t word(uint8_t hi, uint8_t low)
{
    return (hi << 8) + lo;
}

查看项目的自述文件后,我们知道它可能是一个 Arduino 相关的实用程序,然后在此处查看文档:

https://www.arduino.cc/reference/en/language/variables/conversion/wordcast/

Description Converts a value to the word data type.

Syntax

word(x)
word(h, l)
(word)x (C-style type conversion)

Parameters

x: a value. Allowed data types: any type.
h: the high-order (leftmost) byte of the word.
l: the low-order (rightmost) byte of the word.

Returns Data type: word.