gpt4 book ai didi

c++ - 将 constexpr 字节数组与缓冲区的一部分(指向数据的指针)进行比较

转载 作者:太空宇宙 更新时间:2023-11-04 15:29:12 24 4
gpt4 key购买 nike

我定义了以下常量:

constexpr uint8_t msgHeader[] = { 0x44, 0x44, 0x53, 0x20 };
constexpr uint8_t msgHeaderSize = sizeof(msgHeader) / sizeof(msgHeader[0]);

接下来我有一个函数,它提供指向消息数据的指针,我需要检查消息头是否有效。这是一个示例代码:

void IsHeaderValid(uint8_t* msg)
{
uint8_t currentHeader[msgHeaderSize];
for(int i = 0; i < msgHeaderSize; ++i)
{
currentHeader[i] = msg[i];
}

if(strcmp(currentHeader, msgHeader))
{
return false;
}

return true;
}

您能否推荐任何其他(更简单/更清晰)的方法来比较 constexpr msgHeader 与传入消息?

最佳答案

使用您的 algorithms :

bool IsHeaderValid(uint8_t* msg)
{
return std::equal(msgHeader, msgHeader + msgHeaderSize, msg);
}

bool IsHeaderValid(uint8_t* msg)
{
return std::equal(std::begin(msgHeader), std::end(msgHeader), msg);
}

关于c++ - 将 constexpr 字节数组与缓冲区的一部分(指向数据的指针)进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58919175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com