我在我的项目的一部分中有这个代码:
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) 如何以编程方式在其默认程序中打开文件(我使用的是Windows XP).
例如,打开*.txt将在记事本中打开文件.