gpt4 book ai didi

不同字节序分支中的代码覆盖率

转载 作者:行者123 更新时间:2023-11-30 17:38:44 25 4
gpt4 key购买 nike

假设您有一些代码,例如:

if (endianness == ENDIAN_LITTLE)
{
// Do little-endian code here
}
else
{
// Do big-endian code here
}

关于如何在同一系统(位或小端)上使用一些单元测试覆盖两个分支,是否有一些好的模式?

最佳答案

long some_number;
memcpy(&some_number, "\x01\x23\x45\x67", 4);
check(some_number, 0x1234567, ENDIAN_BIG);
memcpy(&some_number, "\x67\x45\x23\x01", 4);
check(some_number, 0x1234567, ENDIAN_LITTLE);

警告:这可能是未定义的行为(我必须检查标准,但我现在懒得做),因为它严重依赖 a) 具有 4 个字节的 long 和 b) 指针转换期间发生的情况。但是,如果编译器没有选择完全优化 UD,这将执行您期望的操作。如果它有效,那就没问题,如果它不起作用,则可能仍然是由于编译器的行为造成的。

关于不同字节序分支中的代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22054177/

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