Здравствуйте, гость ( Вход | Регистрация )

> Lua number -> pointer cast
Cockney
сообщение 5.11.2019, 13:16
Сообщение #1


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22546
Пользователь №: 16.156



Вопрос знатокам.

Есть ffi.cdef

Код

    struct image_descriptor {
           unsigned char* address;
           int width;
           int height;
           int length;
    };


далее

Код
local a,w,h,l = getimage()

local img_descr = ffi.cast("struct image_descriptor*")
img_descr.address = a


Получаем ошибку. Собственно, на сколько я понял, в документации написано : только number -> number, pointer -> pointer, иные варианты не допустимы.

Как выкручиваться ?
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Cockney
сообщение 14.11.2019, 22:48
Сообщение #2


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22546
Пользователь №: 16.156



Цитата
Мне прям интересно даст ли присвоить именно на стадии компиляции -1 указателю.



Если в тупую - void* memPtr = -1, то не даст, невозможно кастануть int к void*. Если явно - void* memPtr = (void*)-1, то -1 приведет к max uint64, что странно, ибо компилировал под x32, но так или иначе, -1 превращается в верхнюю границу типа.

Цитата
как я помню указатель является int'ом, а не uint'ом


Если исходить из того, что в машине нельзя обращаться по отрицательным адресам (а int подразумевает хранение таковых) он конечно может быть указателем но на определенном диапозоне, пусть даже и совпадает от 0 до max с максимальным адресом системы, но в качестве безопасности интерфейса общения разных интерфейсов я бы лично использовал uint для этого. В качестве отступления : в c++11 есть два типа указателей intptr_t и uintptr_t, для чего - написано где-то в стандарте

Впервые слышу, чтобы знак как-то влиял на производительность.

Цитата
winapi


winapi - не си, там своя атмосфера и "особый путь".

Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения



Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 10.7.2025, 23:01
Designed by Nickostyle