Я использовал двойную вертикальную "||" как логический оператор «или». И увидел, что «|» является поразрядным или.Какова точная функция функции "|" (вертикальная линия) при разделении аргументов
Однако, поскольку я начал работать с C++/cli, я заметил, что он используется для разделения флагов в функциях с единственным параметром, который, кажется, принимает несколько флагов.
Примером этого может служить пример функции msdn для функции MessageBox().
int msgboxID = MessageBox(
NULL,
(LPCWSTR)L"Resource not available\nDo you want to try again?",
(LPCWSTR)L"Account Details",
MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2
);
Что такое операция, выполняемая командой "|" Вот?
Что такое «|» символ на самом деле называется? (Как и «^», называется кареткой, а не тем, что я знал по-прежнему, как я запрограммировал, что было «вверх ногами V»): D
Причина, по которой я спрашиваю, что я использую функцию setWindowPos (), который также принимает флаги в качестве параметров. Функция объявлена следующим образом:
BOOL WINAPI SetWindowPos(
_In_ HWND hWnd,
_In_opt_ HWND hWndInsertAfter,
_In_ int X,
_In_ int Y,
_In_ int cx,
_In_ int cy,
_In_ UINT uFlags
);
И я хотел бы знать, являются ли флаги могут быть объединены таким же образом, как и в MessageBox().
Спасибо заранее,
Guy
Это логично или оперативно. –
@TioPepe Нет, это не так, это _bitwise_ или оператор! – zennehoy
Мое предположение - 'MB_ICONWARNING',' MB_CANCELTRYCONTINUE', 'MB_DEFBUTTON2' - это макросы, определенные где-то в коде, и' | 'является побитовым или оператором, применяемым к ним. –