Уточнение ответов

По результатам проведенной в понедельник консультации.

Соглашение fastcall gcc/Microsoft предполагает размещение первых двух параметров в регистрах ecx и edx, оставшиеся параметры размещаются на стеке в обычном Си-порядке: справа налево (RTL), первый размещаемый параметр имеет наименьший адрес и т.д. Очистку стека от параметров, если они там есть, производит вызываемая функция, как и в соглашении stdcall.

Применение ключевого слова static при объявлении функции, как и в случае с переменными, ограничивает видимость функции: она видна и может быть вызвана только в данной единице трансляции. (Стандарт Си99 § 6.2.2 абзац 3) На практике это используется для скрытия особенностей реализации алгоритмов от других компонент программы (единиц трансляции).

This entry was posted in Без рубрики and tagged . Bookmark the permalink.

Leave a Reply