我收到了以下源代码,它生成输入字符串的专有 CRC 值。你能帮忙识别语言并建议我可以在哪个工具/环境中编译并使其工作吗?谢谢
WORD CalcCRC(BYTE *pstr, WORD len)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
WORD crc;
WORD i;
crc = 0; // initialise CRC
for (i = 0; i<len; i++) // calculate CRC for every single byte
{
CRCBYT(*pstr, &crc);
pstr++;
}
return crc;
}
void CRCBYT(unsigned char byt, WORD *pcrc)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
int i;
WORD fl1;
for (i = 0; i<8; i++)
{
fl1 = ((*pcrc) & 0x8000); //MSB = 1?
(*pcrc) <<= 1; //CRC shift left
if (byt & 0x80) //MSB = 1?
(*pcrc)++; //Byte shift left
byt <<= 1;
if (fl1) //if fl1 XOR of CRC
(*pcrc) ^= 0x1021;
}
}
最佳答案
它来自 Windows,但如果您删除 AFX_MANAGE_STATE
行(似乎不需要),它应该可以在任何 C 或 C++ 编译器中编译。
如果您不是为 Windows 编译,您可能需要添加以下类型定义:
typedef unsigned short WORD;
typedef unsigned char BYTE;
关于c++ - C、C++?如何编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29311904/