cdecl

Спецификатор cdecl — это еще одно ключевое слово, часто применяемое при межъязыковом программировании. Он применяется к функциям, которые могут быть использованы и в С, и в C++. Функции C++ уточняемы (mangled), чтобы сделать возможной перегрузку, а функции ANSI С — нет. Ключевое слово cdecl, примененное к функции, указывает на то, что: используется соглашение С об именах (имя функции предваряется подчеркиванием); имя функции не уточняется; и, разумеется, используется соглашение С о вызовах. И в С, и в C++ используется один и тот же обратный порядок аргументов функций на стеке (см. выше в этой главе раздел "extern".)

Ключевое слово cdecl все еще используется во многих библиотечных функциях, доступных программистам на Borland C++, чтобы обеспечить совместимость между различными реализациями С и C++ (во многих продуктах, выпущенных компанией Borland, используются одинаковые библиотечные функции). Если просмотреть содержимое заголовков, то примеры непосредственного использования cdecl найти будет сложно, скорее, вы постоянно будете натыкаться на RTLENTRY. Заглянув в файл _defs.h, вы найдете макрос, определяющий cdecl как RTLENTRY.

Замечание

Если посмотреть на опции целевого файла, предлагаемые в окне TargetExpert, то можно увидеть, что компилятор Borland 5 предлагает их множество. Среди них Win16, Win32, EasyWin, Console и GUI. To, что кажется уловкой — ссылка на макрос описываемый cdecl — может оказаться необходимым для обеспечения последовательности и совместимости со всеми многообразными типами.

Обращение к встроенному ассемблеру

Borland C++ позволяет программистам вставлять в программы фрагменты, написанные на встроенном ассемблере. Для программистов под DOS это по-прежнему является замечательной возможностью, так как позволяет использовать все возможности операционной системы, записывая необходимую информацию в нужные регистры памяти и вызывая процедуры обработки прерываний. Возможность использовать встроенный ассемблер по-прежнему сохранена. Вы можете даже вызвать некоторые из этих прерываний. В большинстве случаев, однако, возможность прямого доступа на этом уровне перекрыта. Попытка использования функций BIOS для прямого вывода на экран вызовет неадекватную реакцию Windows.

Этот раздел не является введением в ассемблер. Хотя такая возможность по-прежнему доступна, число людей, использующих этот язык, уменьшается. На ассемблере зачастую очень сложно выполнить необходимый объем работ