ПрограммированиеФорумОбщее

Передача параметров. (2 стр)

Страницы: 1 2
#15
11:14, 5 апр 2010

Mega
> я не понял. зачем вам знать порядок параметров в стеке? ведь на корректность
> выполнения memcpy это не влияет?
А откуда memcpy-ть начинать будешь - с a или с c[0]?

#16
11:24, 5 апр 2010

Mega
Имелось в виду одним memcpy скопировать все параметры, а не по memcpy на каждый.
Но в любом случае так лучше не делать.

#17
12:33, 5 апр 2010

keltar
> Имелось в виду одним memcpy скопировать все параметры, а не по memcpy на
> каждый.

абсурд какой-то - лезть в машинно-зависимые, компиляторо-зависимые дебри хранения параметров в стеке, чтобы "сэкономить" одну микросекунду, вызвав копирование один раз вместо трех?
бред. у кого-то слишком много свободного времени.

keltar
> Но в любом случае так лучше не делать.

почему это нельзя делать memcpy на параметры?

#18
12:48, 5 апр 2010

Mega
> компиляторо-зависимые дебри хранения параметров в стеке
Да они все стандартизированы, надо просто явно декларировать тип вызова.

#19
14:07, 5 апр 2010

doc.
> Да они все стандартизированы, надо просто явно декларировать тип вызова.

1. несмотря на стандартизацию, стеки на разных платформах могут расти в разные стороны.
2. зачем? зачем извращаться?

#20
16:30, 5 апр 2010

Не надо вырывать цитаты, отбрасывая контекст, радикально влияющий на смысл, и удивляться, да? Разумеется "не надо делать" относилось к копированию всех аргументов за один вызов.
> зачем? зачем извращаться?
Какая разница, это уже не наше дело. Раз кому-то надо, значит надо.

#21
19:15, 5 апр 2010

А вообще, для корректной копируемости всех параметров одним memcpy (а то и вовсе передачей по ссылке) есть наикардинальнейшее решение:

struct MyFuncParameters
{
 T1 p1; T2 p2; ...
};

void MyFunc (MyFuncParameters p)
{
...
};

Помимо решения основной проблемы, даёт и массу иных профитов.

#22
20:19, 5 апр 2010

Sbtrn. Devil
По ходу, MyFuncParametrs все равно надо будет лепить 16 присваиваний.

Страницы: 1 2
ПрограммированиеФорумОбщее

Тема в архиве.