c ++ передача аргументов по ссылке и указателю

в c ++

class bar
{
    int i;
    char b;
    float d;
};

void foo ( bar arg );
void foo ( bar &arg );
void foo ( bar *arg );

это образец класса / структуры и функций
У меня есть некоторые вопросы

  • , в чем разница между 1-м и 2-м способами передачи аргумента в 'asm', размере, скорости?
  • как аргументы передаются функциям foo в каждом случае (в случае указателя, я знаю, что указатель помещается в стек)
  • при передаче аргументов, с точки зрения эффективности (скорость, размер, предпочтительность), которая лучше ?
  • Какой синтаксис Intel 'asm' соответствует каждому из способов передачи аргументов?

Я знаю, что большинство говорят о том, что «это не имеет значения для современных компиляторов и процессоров», но что, если мы говорим о старых процессорах или компиляторах?

заранее спасибо

26
задан Jeff Foster 18 July 2011 в 12:15
поделиться