Требуется проверить валидность флага, то бишь его наличие.
Собственно, вопрос: по какой закономерности можно определить его адрес? Насколько мне известно, принцип немного другой, нежели у простых переменных со смещением.
Требуется проверить валидность флага, то бишь его наличие.
Собственно, вопрос: по какой закономерности можно определить его адрес? Насколько мне известно, принцип немного другой, нежели у простых переменных со смещением.
Адрес какого флага? Если вы про битовые операции, то адрес "флагов" - адрес значения, поскольку Pawn хранит значения в ячейках по 32-бита.
Есть несколько способов получить адрес ячейки.
1) Ячейка - часть массива.
2) Если ячейка - обычная переменная.PHP код:
new addr;
#emit load.s.alt array // load.alt если массив глобальный
#emit load.s.pri n // номер ячейки в массиве [0,sizeof array)
#emit idxaddr // pri = адрес ячейки
#emit stor.s.pri addr
PHP код:
#emit addr.pri local_var
"Флаги" работают по принципу логических переменных, в плане хранения двоичного значения, и это давно наталкивало меня на то, что адрес такой переменной можно получить, определив адрес ячейки одномерного массива. Собственно, вы данный метод и описали.
Если это так, то остаётся узнать, как осуществить проверку на существование определенного флага.
Как я себе это примерно представляю: если по имени флага адрес возвращает отрицательное значение, - то данный "флаг" в памяти не зарезервирован.
Последний раз редактировалось SooBad; 13.05.2017 в 23:35.
Подниму. Проверка флага на валидность остаётся актуальной.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)