c++ - 条件中的 Switch 语句和 & 号

标签 c++ c unit-testing

如果 switch case 给出为

typedef unsigned char uint8_t;    
const uint8_t mask = 0x01;
const uint8_t Buffer[];

switch (Buffer[4] & mask)
{
case 0x01U:
---
if
else

case 0x00U:
------
if 
else

default:

}

我正在进行单元测试以获得 100% 的覆盖率并测试一个 ureq 我需要输入默认情况但我无法理解什么开关 (Buffer[2] & mask)意思是 (Buffer[2] & mask) 到底描述了什么,& 用于什么以及如何输入默认情况?

最佳答案

因为 mask 是 1,如果 Buffer[4] Buffer[4] & mask 将是 1是奇数,0 如果是偶数。它不能是任何其他东西。

所以 case 标签 2 从未被使用过。

& 是按位与运算符。

关于c++ - 条件中的 Switch 语句和 & 号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38377170/

相关文章:

c++ - 使用 FreeImage 加载 RAW 灰度图像

c++ - 按引用和按值传递时的 gcc 程序集

C++ unique_ptr 常量引用

c++ - 将 bool 转换为 char 会出现错误和代码中断

java - Mockito 定义 'when' 调用答案

c - 基本 C/K&R 2.7/无论定义如何,字符都显示为菱形?

c - Segmentation Fault(core dumped)

c - 在 C 中打印一个 Trie

c# - Visual Studio 单元测试在 TFS 构建上运行速度较慢

unit-testing - UUID 版本 5(将哈希转换为 guid)生成算法的测试向量?