跳转到内容

libs::CRC API

文档稀疏
符号
24
已记录
3
类型
7
继承关系
0
源码分支
main

21 / 24 个公开 API 符号没有说明。

共 7 个类型

类型目录
类

crc::CRCX

查看源码

上游未提供类型说明。

成员函数

4

calc

函数公开静态
        static constexpr value_type crc::CRCX< Bits, Poly, Init, Rin, Rout, XorOut >::calc (const std::array< uint8_t, N > &data)
      

上游未提供说明。

libs/utils/crc/crc.hpp:168

calc

函数公开静态
        static value_type crc::CRCX< Bits, Poly, Init, Rin, Rout, XorOut >::calc (const uint8_t *data, size_t len)
      

上游未提供说明。

libs/utils/crc/crc.hpp:140

generate_table

函数私有静态
        static constexpr std::array< value_type, 256 > crc::CRCX< Bits, Poly, Init, Rin, Rout, XorOut >::generate_table ()
      

生成 256 项查找表。 运行时计算 CRC 时只需要做表查找,不必每个 bit 都手工移位。

libs/utils/crc/crc.hpp:129

table_entry

函数私有静态
        static constexpr value_type crc::CRCX< Bits, Poly, Init, Rin, Rout, XorOut >::table_entry (uint8_t index)
      

计算查找表中的单个表项。 这个函数在编译期生成 256 项查找表时被调用,因此运行时不会重复做这部分计算。

libs/utils/crc/crc.hpp:106

成员变量

2

mask

变量私有静态
        value_type crc::CRCX< Bits, Poly, Init, Rin, Rout, XorOut >::mask
      

上游未提供说明。

libs/utils/crc/crc.hpp:99

table

变量私有静态
        auto crc::CRCX< Bits, Poly, Init, Rin, Rout, XorOut >::table
      

上游未提供说明。

libs/utils/crc/crc.hpp:137

嵌套类型

1

value_type

类型定义私有
        using crc::CRCX< Bits, Poly, Init, Rin, Rout, XorOut >::value_type = detail::uint_of_bits_t<Bits>
      

上游未提供说明。

libs/utils/crc/crc.hpp:97
结构体

crc::detail::uint_of_bits

查看源码

上游未提供类型说明。

此类型没有可用的公开成员。

结构体

crc::detail::uint_of_bits< 16 >

查看源码

上游未提供类型说明。

嵌套类型

1

type

类型定义公开
        using crc::detail::uint_of_bits< 16 >::type = uint16_t
      

上游未提供说明。

libs/utils/crc/crc.hpp:71
结构体

crc::detail::uint_of_bits< 24 >

查看源码

上游未提供类型说明。

嵌套类型

1

type

类型定义公开
        using crc::detail::uint_of_bits< 24 >::type = uint32_t
      

上游未提供说明。

libs/utils/crc/crc.hpp:75
结构体

crc::detail::uint_of_bits< 32 >

查看源码

上游未提供类型说明。

嵌套类型

1

type

类型定义公开
        using crc::detail::uint_of_bits< 32 >::type = uint32_t
      

上游未提供说明。

libs/utils/crc/crc.hpp:79
结构体

crc::detail::uint_of_bits< 64 >

查看源码

上游未提供类型说明。

嵌套类型

1

type

类型定义公开
        using crc::detail::uint_of_bits< 64 >::type = uint64_t
      

上游未提供说明。

libs/utils/crc/crc.hpp:83
结构体

crc::detail::uint_of_bits< 8 >

查看源码

上游未提供类型说明。

嵌套类型

1

type

类型定义公开
        using crc::detail::uint_of_bits< 8 >::type = uint8_t
      

上游未提供说明。

libs/utils/crc/crc.hpp:67

其他公开符号

函数

1

crc::detail::bit_reverse

函数
        T crc::detail::bit_reverse (T value, unsigned bits)
      

上游未提供说明。

libs/utils/crc/crc.hpp:55

类型定义

1

crc::detail::uint_of_bits_t

类型定义
        using crc::detail::uint_of_bits_t = typename uint_of_bits<Bits>::type
      

上游未提供说明。

libs/utils/crc/crc.hpp:86

文件

1

libs/utils/crc/crc.hpp

文件

通用 CRC 模板库。 syhanjin 2026-03-01 这个文件把常见 CRC 算法统一抽象成一个模板:多项式、初值、输入/输出是否反转、最终异或值都可以配置。 对使用者来说,最常见的用法就是直接 typedef 一个别名,然后在协议校验、数据帧完整性检查里调用 calc()。 下面这些别名样例可以直接复制到自己的代码里: //CRC-8 using crc::CRCX<8, 0x07, 0x00, false, false, 0x00> CRC8_ATM=; //CRC-8/MAXIM using crc::CRCX<8, 0x31, 0x00, true, true, 0x00> CRC8_MAXIM=; //CRC-16/MODBUS using crc::CRCX<16, 0x8005, 0xFFFF, true, true, 0x0000> CRC16_MODBUS=; //CRC-16/CCITT-FALSE using crc::CRCX<16, 0x1021, 0xFFFF, false, false, 0x0000> CRC16_CCITT=; //CRC-24/OpenPGP using crc::CRCX<24, 0x864CFB, 0xB704CE, false, false, 0x000000> CRC24_PGP=; //CRC-32(Ethernet) using crc::CRCX<32, 0x04C11DB7, 0xFFFFFFFF, true, true, 0xFFFFFFFF> CRC32=; //CRC-32C using crc::CRCX<32, 0x1EDC6F41, 0xFFFFFFFF, true, true, 0xFFFFFFFF> CRC32C=; //CRC-64/ECMA using crc::CRCX CRC64_ECMA=<64, 0x42F0E1EBA9EA3693ULL, 0x0000000000000000ULL, false , false , 0x0000000000000000ULL>;

libs/utils/crc/crc.hpp