Есть ли смысл для компилятора передавать такую ​​структуру в регистре процессора функции?

I ' Я хотел бы знать, содержит ли какая-либо структура более одного примитива, но ее общий размер меньше или равен размеру одного регистра процессора, такого как 4-байтовый регистр, имеет ли когда-либо смысл для компилятора помещать его в один этих 4-байтовых регистров при передаче его по значению или ссылке на функцию вместо того, чтобы делать его копию в стеке вызываемого объекта или передавать на него указатель, и вообще при передаче чего-то большего, чем один примитив в функцию, такую ​​как массив или структура, передаваемая в регистр процессора, когда-нибудь пригодится?

образец такой структуры:

struct sample{
 public:
  char char1;
  char char2;
};

образец передачи структуры функции:

void someFunc(const sample input){
 //whatever
}
void someFunc(sample input){
 //whatever
}
void someFunc(sample & input){
 //whatever
}
void someFunc(const sample & input){
 //whatever
}
8
задан unwind 18 November 2010 в 09:06
поделиться