小编Tom*_*Tom的帖子

位掩码切换语句

我在我的项目的一部分中有这个代码:

enum myEnum
{
    invalid = -1,
    val1 = 1,
    val2 = 2,
    val3 = 4
};

int bitmask = val1 | val3;

if(bitmask & val1)
    ...
if(bitmask & val2)
    ...
if(bitmask & val3)
    ...
Run Code Online (Sandbox Code Playgroud)

这很好,它完美地工作,但我总是想知道是否可以通过开关完成.我在思考这个问题:

int checkMask(int& mask)
{
    for(int i = 0; mask; mask &= ~(1 << i++))
    {
        if(mask & (1 << i))
        {
            int ret = mask & (1 << i);
            mask &= ~ret;
            return ret;
        }
    }

    return invalid;
}

#define START_BITMASK_SWITCH(x) int xcopy = …
Run Code Online (Sandbox Code Playgroud)

c++ bitmask bitwise-operators bit-masks switch-statement

6
推荐指数
3
解决办法
1万
查看次数

如何在其默认程序中打开文件

如何以编程方式在其默认程序中打开文件(我使用的是Windows XP).

例如,打开*.txt将在记事本中打开文件.

c windows winapi

4
推荐指数
1
解决办法
558
查看次数