/ / По-добър начин за обработка на множествени булеви променливи във функцията call - c ++, функция, дизайн-модели, boolean

По-добър начин за обработка на множествени булеви променливи във функционален разговор - c ++, функция, дизайн, булеви

Логиката е да се извика функция с някои входни стойности и функцията връща множество булеви променливи.

В бъдеще булевите променливи могат да бъдат разширени.

function(inp1,inp3,bool1,bool2... booln)

Реших да подредя булевите променливи в структура

function(inp1,inp3,struct bool_flags)

Моля, помогнете ми за ефективен дизайн

Отговори:

1 за отговор № 1

Не съм съвсем сигурен какво правите тук, тъй като въпросът е неясен, но имам идея. uint или a ulong, Тогава всеки бит на променливата е един булев. Можете да прочетете булевото като:

uint bools;
bool bool0 = bools & 1;
bool bool1 = (bools >> 1) & 1;
etc...

Можете да напишете булеаните така:

bools |= bool0;
bools |= bool1 << 1;
etc...

Това работи чрез логическо преместване, промяна и ориентиране на стойностите. Булевите стойности в C ++ са 1 или 0. Така че, за да прочетете, премествате променливата "container" след това & стойността на bool. За да напишете, промените стойността на bool и | с "контейнера".

Единственият недостатък в това е, че инчовете са ограничени до 32 бита и дългата е 64 бита. Може да сте в състояние да създадете структура от инчове или дълга за по-ефективно опаковане, ако е необходимо. Късмет!