в си коде? Например, я создал функцию void foo() { return; } Как мне понять сколько байт она будет занимать? Если брать указатель на функцию и итерировать до поиска команды RET то выдаются всегда разные значения почему-то.
я точно знаю, как узнать размер функции в си. но не под каждый компилятор, и не внутри программы. если компилятор содержит возможность объявления пользовательских секций, то помещаешь функцию внутрь этой секции. при этом надо помнить, что некоторые платформы размещают константы и код в разных секциях. распространённый пример такого объявления - ram_function для cortex m0. далее добавляете в генерацию линкеру map и смотрите размер функции в секции. собственно, вам для чего размер функции? может, есть другие решения?
Обсуждают сегодня