Несколько логических значений в структуре

У меня есть вопрос об использовании нескольких логических значений в структуре.

У меня есть структура

typedef struct Foo
{
foo2,
foo3
}

которая является частью другой основной структуры

typedef struct MainFoo
{
int n,
....
.
.
FOO foo

и функция

void foo(int foo)
{
if(foo)
b = true;
}

и в другой функции:

if(b)
{
bool Foo.foo2 = true;
}

if(b)
{
bool Foo.foo3 = true;
}

и, наконец, в другом классе я проверяю

if(Foo.foo2)
{
//Do something
}

if(Foo.foo3)
{
//Do Something
}

Поэтому мой вопрос, есть ли другой лучший способ проверить это. Я пытался использовать Dword, но не уверен, что понял его, но он только что получил последнее логическое состояние, которое было проверено, и, следовательно, не смог проверить каждое логическое состояние за раз в другом классе. Любое предложение в этом? Является ли использование структуры только для bool хорошей практикой? Если нет, то есть ли другой лучший способ?

большое спасибо

-2

Решение

Это в основном зависит от вашей проблемы. Вкратце, используйте Foo структура, только если она имеет какое-то значение вне MainFoo в целом (например, если это все настройки, которые должны быть перенесены все вместе или сохранены в файл извне), в противном случае переместите foo2 а также foo3 в MainFoo,

За исключением этого, использование является правильным. С другой стороны, вы можете уменьшить потребление памяти, если вы используете битовые поля.

struct Foo {
bool foo2 : 1;
bool foo3 : 1;
};
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector