簡體   English   中英

多值DWORD枚舉作為一個函數參數C ++

[英]Multi Value DWORD Enum as One Function Argument C++

我無法使它正常工作。 我想在第一個func arg spot中包括兩個值(彩色和黑色)。

它與arg1中的一個arg可以正常工作: func(arg_a::Color, 5);

我在arg1中嘗試了以下變體:

arg_a::Color || Black arg_a::Color && Black (arg_a::Color, arg_a::Black) DWORD test = arg_a::Color&&Black;

我的文檔如下:arg_a類型:DWORD

arg_a可以是以下值之一或多個:顏色白色黑色

要將兩個“枚舉值”合二為一,通常為每個值使用一位:

enum {
    Black = 0x01;
    White = 0x02;
    Color = 0x04;
}

然后,您可以將它們與按位運算符組合:

call(Black|White);
// or perhaps easier to read
call(Black + White);

在接收端

call(int val) {
    if (val & Black) { ... }
    if (val & White) { ... }

請注意,這只是偽代碼。

試試DWORD(arg_a :: Black,arg_a :: Color)//預定義的宏或(arg_a :: Black | arg_a :: Color)//按位或

您正在使用邏輯運算符,但需要一些按位運算才能完成此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM