Подтвердить что ты не робот

Необычное объявление функции C

В настоящее время я работаю со старой библиотекой C (созданной в начале 90-х), и следующее объявление функции меня смутило:

#define bland_dll
typedef unsigned short int usint;
typedef unsigned char uchar;

int bland_dll Read_Chan (usint channel);

Что делает bland_dll между именем функции и возвращаемым типом?

Спасибо за ваши огни!

4b9b3361

Ответ 1

Это макрос, определяющий пустой, поэтому при предварительной обработке он оказывается:

int Read_Chan (usint channel);

Я подозреваю, что его сдерживание с первых дней, когда объявляли типы связей DLL, например pascal, которые имеют особое значение для компоновщика, например. Другим примером является __cdecl.

Для завершения идиосинкразий механизмов компоновщика компилятора:

  • __stdcall
  • __fastcall
  • __cdecl

Каждый из них повлиял на то, как компоновщик управлял украшением имен во время компиляции и, возможно, вызвал связь со ссылкой на стороннюю DLL из-за различных переключателей времени ссылки.

Изменить: Спасибо, пожалуйста, за исправление.