Поддерживает ли C передачу по константной ссылке, как C ++? Если нет, есть ли другие способы сделать передачу по стоимости более эффективной? Я не думаю, что имеет смысл передавать ссылки на функцию только потому, что она более эффективна.
C не поддерживает ссылки или передачу по ссылке. Вы должны использовать указатели вместо этого и передавать по адресу. Передача по значению эффективна для примитивных типов, но делает поверхностную копию для структур.
В C ++ имеет много смысла передавать объекты по ссылке для эффективности. Это может сэкономить массу копирования и вызова конструкторов / деструкторов, когда определены конструкторы копирования. Для больших объектов данных (таких как std::list
) нецелесообразно передавать по значению, потому что список будет скопирован при передаче. Здесь вы обязательно должны пройти по ссылке.
Других решений пока нет …