Может кто-нибудь объяснить мне эту строку кода?
#define reference_uid(id,idx) ( (int64) ((uint64)(id) & 0xFFFFFFFF) | ((uint64)(idx) << 32) )
Я понимаю, что это должен быть уникальный идентификатор. но я не уверен, что на самом деле здесь происходит 🙁
пример его использования:
mapreg->setreg(reference_uid(script->add_str("$@bg_member"), count), sd->status.account_id);
mapreg — это хранилище глобальных переменных, которое должно быть доступно из внешних скриптов. здесь имя переменной будет $ @ bg_member
$ обозначает глобальный где
@ определяет область действия — @ означает, что переменная уникальна для текущего экземпляра скрипта.
Мне интересно, если это просто способ определить $ @ bg_member как массив. или позволяет ли это хранить несколько копий $ @ bg_member в mapreg с их уникальными идентификаторами.
Но потому что я этого не знаю. Я не знаю, как правильно адресовать их из скрипта 🙁
edit: вероятно, я должен упомянуть, что script-> add_str («$ @ bg_member») возвращает идентификатор переменной и остается неизменным. где число увеличивается в цикле for при каждом повороте.
Задача ещё не решена.
Других решений пока нет …