ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1245899 Топик полностью
AlexBi (03.10.2022 11:43, просмотров: 296) ответил VladislavS. на C++ программиста вообще ничего не смущает, а уж объём текста и подавно :) А вот во что это в кончном счёте скомпилируется очень даже. Во-первых, передать аргумент в Enumerate_Reset не бесплатно. Во-вторых внутри придётся много проверок аргумента делать, чтобы выбирать с каким из двух USB-портов оперировать. В-третьих, Enumerate_Reset static inline и его вызова вообще не будет. Что-то оптимизатор вытянет, но далеко не всё. Код будет медленней, а это прерывание. Ну и
Если так переживать за скорость, что учитывать количество передаваемых аргументов, то в С++ придется делать изрядное количество static, т.к. любой вызов не static метода неявно требует передачи одного параметра, а в программах очень часто встречается единственный объект класса. Не уверен, что оптимизатор способен обнаружить это самостоятельно и сделать код как для static, хотя формально препятствий нет. 

На С можно сделать как макрос, так и рантайм. Рантайм, в принципе, может быть сокращен оптимизатором, но тут я не уверен, что нынешние оптимизаторы достаточно умны, хотя формально препятствий нет, особенно если оптимизатору помочь, объявив inline IRQHandler(...