typedef struct _ft_device_list_info_node {
ULONG Flags;
ULONG Type;
ULONG ID;
DWORD LocId;
char SerialNumber[16];
char Description[64];
FT_HANDLE ftHandle;
} FT_DEVICE_LIST_INFO_NODE;
我有一个指针* chanInfo,它基本上指向FT_DEVICE_LIST_INFO_NODE结构。我想根据FT_DEVICE_LIST_INFO_NODE中的标志输出某些东西,所以我决定使用“switch()”,但是我应该把它作为开关的条件?提前谢谢。
答案 0 :(得分:3)
直接的答案是:
switch (chanInfo->Flags)
{
case Something:
...
break;
}
......但我不禁觉得还有更多......
如果Flags
实际上是一个位掩码,很可能是根据名称来判断的,那么使用switch
可能是错误的。你可能想做这样的事情:
if (chanInfo->Flags & FLAG_ONE)
{
// FLAG_ONE is set...
}
if (chanInfo->Flags & FLAG_TWO)
{
// FLAG_TWO is set...
}
switch
用于互斥的情况,而标志通常不是互斥的。
答案 1 :(得分:0)
这是我要写的代码:
switch(chanInfo->Flags)
{
case value1:
<do stuff>
break;
...
}
但我强烈建议您按照一些指南或书籍逐步学习。