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 » Разное поведение хэш-карты в структуре