如何只读取typedef结构中的第一个参数?

时间:2013-05-22 20:42:04

标签: c

抱歉,我是C的新手,甚至无法清楚地解释这个问题。 这是代码

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()”,但是我应该把它作为开关的条件?提前谢谢。

2 个答案:

答案 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;
    ...
}

但我强烈建议您按照一些指南或书籍逐步学习。