Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
sniper::p
Зарегистрирован: 04.10.2005 Сообщения: 237 Откуда: rus/73
|
Добавлено: Вт Фев 07 2006 00:40 Заголовок сообщения: Способ вызова/возврата функций |
|
|
Мне недавно сказали, что Билдер, извините, на Делфи написан. В принципе, ничего такого, может быть даже так оно и есть, но интересна вот такая штука: вся VCL написана на объектном Паскале, даже в Билдере при компиляции компилируется Паскалевская библиотека. Получается, что С++, используемый в Билдере - есть ничто иное, как по другому выглядящий Паскаль? Как тогда в этой версии С++ организованы вызовы функций (по-сишному или по-паскалевски)? _________________ Нет предела совершенствованию |
|
Вернуться к началу |
|
|
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Вт Фев 07 2006 10:02 Заголовок сообщения: |
|
|
1) Delphi это не паскаль.
2) В паскале при вызове функций используется соглашение Паскаль, при котором все параметры загоняются в стек в прямом порядке
3) В Си и Си++ используется соглашение СИ, все параметры загоняются в стек в обратном порядке.
Как не трудно догадаться по спецификатору fast_call, в библиотеке VCL используется соглашение fast call, передача параметров в этом случае, по возможности, осуществляется через регистры процессова. |
|
Вернуться к началу |
|
|
Wladimir
Зарегистрирован: 02.03.2005 Сообщения: 150 Откуда: Ставропольский край
|
Добавлено: Вт Фев 07 2006 21:44 Заголовок сообщения: |
|
|
Цитата: | вся VCL написана на объектном Паскале, даже в Билдере при компиляции компилируется Паскалевская библиотека. Получается, что С++, используемый в Билдере - есть ничто иное, как по другому выглядящий Паскаль? |
А вся Win32Api написана на сях. И всё, что ни делается в системе - вызов C-функций.
Вывод: паскаль, используемый в дельфях - есть ничто иное, как по-другому выглядящие си. |
|
Вернуться к началу |
|
|
|