[devel] memcpy глючит (или я не умею его готовить)

Alexey V. Vissarionov gremlin на altlinux.org
Сб Фев 23 15:55:21 MSK 2019


On 2019-02-23 15:28:44 +0300, Leonid Krivoshein wrote:

 >>> void-указателями такого не проделаешь, в отличие от gcc, который
 >>> тоже  >>> ни один стандарт могёт.
 >> Я не понял этой фразы и сравнения указателей с gcc. При чем тут
 >> указатель на void? Размер объекта в этом случае не известен,
 >> разумеется арифметика не работает.

Арихметика работает независимо от. Например, конструкцию вида

void *x; int y = x[1];

компилятор пошлет по азимуту, и правильно сделает. Но при этом

void *x; int y = x+123;

не вызовет у компилятора никаких эмоций и превратится (на писюшатине)
в самый обычный lea. Почему? Потому что это обычное сложение, а как
потом будет использоваться результат - уже забота не компилятора, а
программиста.

Если что, я такие конструкции регулярно использую, когда пишу для
контроллеров.

 > Вы прибавляете к адресу целое число, которое является чем?
 > Разницей в адресах или индексах?

sizeof(void) - это сколько? :-)


-- 
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net


Подробная информация о списке рассылки Devel