История изменений
Исправление i-rinat, (текущая версия) :
Так если я эту библиотеку где то буду использовать соответсвенно оно динамический к libc приленкуется
Нет. Там определяется один символ, и он указывает на последовательность из двух команд, mov и ret. Mov загружает константу, ret возвращает управление вызвавшему коду. Незачем линковаться к libc или к чему-то ещё.
Компилятор Си производит все вычисления на этапе компиляции, и в код попадает только константа с результатом.
Давным-давно я пытался написать переборщик для md5 (с модификациями), чтобы пароль из хеша восстановить. Во время оптимизаций до меня дошло, что часть операций можно же предпосчитать! Всего два раунда, имело смысл написать сразу развёрнутый код. Сделал «оптимизацию», скорость не изменилась. И тут я догадался посмотреть, что компилятор сгенерировал для оптимизированного руками варианта. В общем, не было там разницы. Компилятор «догадался» о возможности оптимизации раньше меня.
Исходная версия i-rinat, :
Так если я эту библиотеку где то буду использовать соответсвенно оно динамический к libc приленкуется
Нет. Там определяется один символ, и он указывает на последовательность из двух команд, mov и ret. Mov загружает константу, ret возвращает управление вызвавшему коду. Незачем линковаться к libc или к чему-то ещё.
Компилятор Си производит все вычисления на этапе компиляции, и в код попадает только константа с результатом.