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

Mikhail Efremov sem на altlinux.org
Вс Фев 24 14:06:56 MSK 2019


On Sat, 23 Feb 2019 15:55:21 +0300 Alexey V. Vissarionov wrote:
> 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. Почему? Потому что это обычное сложение, а как
> потом будет использоваться результат - уже забота не компилятора, а
> программиста.
> 
> Если что, я такие конструкции регулярно использую, когда пишу для
> контроллеров.

Ну, я видимо не использовал, поэтому не помню, спасибо.
Вообще логично, до того как в языке появился void * обычно использовали
char * для этих целей.

-- 
WBR, Mikhail Efremov


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