gjrbyek ajhev
Отредактировано Webarion (13.06.2025 14:16:21)
PureBasic - форум |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » PureBasic - форум » Вопросы по PureBasic » Разное поведение хэш-карты в структуре
gjrbyek ajhev
Отредактировано Webarion (13.06.2025 14:16:21)
PB 6.0, ошибки нет как с асм так и с си.
А что так можно " Map2("Map2")\MapIn("MapIn")\Pointer",указывать индекс массива структур не числом а в виде строки?
Отредактировано Sergeihik (11.07.2022 20:39:09)
If Not *Pointer
Может из за того что во втором случае идёт возвращение адреса на ячейку а не самого значения и нужно так?
Вариант 2 - здесь "путь" хэш-карт не создаётся
Define *Pointer = Map2("Map2")\MapIn("MapIn")\Pointer
If Not peeki(*Pointer)
Map2()\MapIn()\Pointer = 2 ; ошибка
EndIf
Debug Map2()\MapIn()\Pointer
В коде ниже, в первом случае, при проверке через If путь структуры создаётся автоматически, во втором случае, при присвоении, такой путь не создаётся.
В первом случае
; If Not Map1("Map1")\MapIn("MapIn")\Pointer
MOV eax,_S1
PUSH eax
PUSH dword [m_Map1]
CALL _PB_CreateMapElement@8
MOV ebp,eax
PUSH ebp
MOV eax,_S2
POP ebp
PUSH eax
PUSH dword [ebp+0]
CALL _PB_CreateMapElement@8
MOV ebp,eax
CMP dword [ebp],0
JE No0
XOR eax,eax
JMP Ok0Во втором
; Define *Pointer = Map2("Map2")\MapIn("MapIn")\Pointer
MOV eax,_S3
PUSH eax
PUSH dword [m_Map2]
CALL _PB_GetMapElement@8
MOV ebp,eax
PUSH ebp
MOV eax,_S2
POP ebp
PUSH eax
PUSH dword [ebp+0]
CALL _PB_GetMapElement@8
MOV ebp,eax
MOV eax,dword [ebp]
MOV dword [p_Pointer],eaxТо есть в первом случае проверяется наличие элемента с заданным именем (если нет, он создается), а во втором чтение данных из поля Pointer. Если данных нет, возвращается 0, но элемент не добавляется в массив.
Подскажите?
из справки
-c, --commented, /COMMENTED: создаёт откомментированный файл вывода '.asm' при создании исполняемого файла. Этот файл можно впоследствии передать ассемблеру, после того как будут сделаны нужные изменения. Эта опция только для опытных программистов.
Вы здесь » PureBasic - форум » Вопросы по PureBasic » Разное поведение хэш-карты в структуре