Что нового

Принцип работы сумм констант

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Здравствуйте, я бы хотел узнать у знающих людей...
Есть небольшой код, а именно я обращаю внимание на стили. [$WS_OVERLAPPEDWINDOW + $WS_POPUP]
Код:
GUICreate("Мой GUI", -1, -1, -1, -1, $WS_OVERLAPPEDWINDOW + $WS_POPUP)

Я понимаю что это все выполняется в С++ и.т.д... Но это не важно.
Как программа понимает какой стиль был применен ? Ведь они суммируются, и этих констант может быть с десяток...
Хотелось бы понимать по какому принципу работает...
Заранее спасибо :smile:
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Ответил сам на свой вопрос, разобрался :smile:
Код:
#CONST_00 = 2
#CONST_01 = 4
#CONST_02 = 8
#CONST_03 = 16

Style = #CONST_00 + #CONST_02 + #CONST_03
Debug Style & #CONST_02
Код представлен в формате PureBasic.
 

Prog

Продвинутый
Сообщения
537
Репутация
65
Правильнее вместо суммирования выполнять операцию побитового ИЛИ.
Код:
#CONST_00 = 2
#CONST_01 = 4
#CONST_02 = 8
#CONST_03 = 16

Style = #CONST_00 | #CONST_02 | #CONST_03
Debug Bool(Style & #CONST_02)
Debug Bool(Style & #CONST_01)
При суммировании возможны ошибки если константа не вмещается в переменную и происходит переполнение.
 
A

Alofa

Гость
В догонку:
http://autoit-script.ru/autoit3_docs/tutorials/BitFlag.htm
 
Верх