рассмотрим следующую функцию, которая не будет встроена, и предположим, что платформа x86:
Код: Выделить всё
void doSomething(int & in){
//do something
}
во-первых, я не уверен, что такой сценарий произойдет, но поскольку я думаю, что это возможно, я спрошу, ЕСЛИ всякий раз, когда в каком-либо вызывающем объекте эта функция вызывается аргументом быть предоставленным, находится точно в верхней части кадра стека вызывающего объекта, поэтому в вызываемой функции возможен доступ к нему через регистр ebp (после того, как вызываемый объект переместил содержимое esp в ebp) на языке ассемблера, предлагаете ли вы вообще игнорировать объявление параметра для функции и используйте сборку для доступа наши аргументы в этом исключительном случае или просто оставить определение функции как есть и предоставить компилятору делать то, что он делает? поскольку я нигде не читал, что компилятор будет рассматривать такой исключительный случай как фактор соглашения о вызовах, и я думаю, что он просто сгенерирует код для передачи указателя на аргумент в кадр стека вызываемого объекта или в один из регистров
Подробнее здесь:
https://stackoverflow.com/questions/174 ... ional-case