ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1245921 Топик полностью
VladislavS. (03.10.2022 12:18, просмотров: 293) ответил AlexBi на Если так переживать за скорость, что учитывать количество передаваемых аргументов, то в С++ придется делать изрядное количество static, т.к. любой вызов не static метода неявно требует передачи одного параметра, а в программах очень часто встречается единственный объект класса. Не уверен, что оптимизатор способен обнаружить это самостоятельно и сделать код как для static, хотя формально препятствий нет.
В случае с С++ есть возможность писать код методов в заголовочном файле. Тогда весь код будет в одной единице трансляции и возможности оптимизации сильно выше. Статик или не статик тогда на оптимизацию не сильно влияет. Пример на эту тему: 

Тут как вызов статического метода класса, так и оператора объекта дадут одинаковый резултат. Всё потому что у компилятора ВЕСЬ код под рукой. На С он обычно по разным единицам трансляции раскидан и остаётся только надежда на LTO, а он не всесилен.