| =是什么意思

露西·库尔扎(Lucie Kulza)

| =在C ++中是什么意思?我在网络中找到了以下代码片段:

DWORD CDirWatcherDlg::GetChangeFlags1()
{

    DWORD dwChangeNotifyFlags = 0UL;
    FLAG_INFO arFlagInfo[]={
        {IDC_CHECK_FILE_NAME1,      FILE_NOTIFY_CHANGE_FILE_NAME},
        {IDC_CHECK_DIR_NAME1,       FILE_NOTIFY_CHANGE_DIR_NAME},
        {IDC_CHECK_LAST_WRITE1,     FILE_NOTIFY_CHANGE_LAST_WRITE},
        {IDC_CHECK_LAST_ACCESS1,    FILE_NOTIFY_CHANGE_LAST_ACCESS},
        {IDC_CHECK_SIZE1,           FILE_NOTIFY_CHANGE_SIZE},
        {IDC_CHECK_ATTRIBUTES1,     FILE_NOTIFY_CHANGE_ATTRIBUTES},
        {IDC_CHECK_LAST_WRITE1,     FILE_NOTIFY_CHANGE_LAST_WRITE},
        {IDC_CHECK_LAST_ACCESS1,    FILE_NOTIFY_CHANGE_LAST_ACCESS},
        {IDC_CHECK_CREATION1,       FILE_NOTIFY_CHANGE_CREATION},
        {IDC_CHECK_SECURITY1,       FILE_NOTIFY_CHANGE_SECURITY}
    };

    for(int i = 0; i < sizeof(arFlagInfo)/sizeof(arFlagInfo[0]); ++i)
    {
        dwChangeNotifyFlags |= (IsDlgButtonChecked(arFlagInfo[i].nCtrlId) == BST_CHECKED)? arFlagInfo[i].nFlag : 0;
    }

    return dwChangeNotifyFlags;
}

我不知道此功能是什么。

有人可以解释一下吗?

可能

这意味着“按位或”,它也用在C中,并且与+=

举例来说,我们有以下代码:

char o = 0xF0;
o |= 0x0F;     //You can also write o = o|0x0F;

现在,o具有值0xFF

 1111 0000 | 0000 1111   =   1111 1111

让我们再试一次:

char o = 0xE1;  //1110 0001
o |= 0x08;      //0000 1000

o现在是:

1110 0001 | 0000 1000   =   1110 1001

哪一个 0xE9

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章