不寻常的C函数声明

时间:2016-05-20 09:47:40

标签: c function declaration

我目前正在使用一个旧的C库(在90年代早期制作),以下函数声明使我感到困惑:

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

int bland_dll Read_Chan (usint channel);

函数名称和返回类型之间的bland_dll是什么?

谢谢你的灯!

1 个答案:

答案 0 :(得分:7)

它的宏定义为空,所以当预处理时,结果是:

int Read_Chan (usint channel);

我怀疑,它是从早期声明DLL链接类型的延续,例如pascal,它对链接器有特殊意义。另一个例子是__cdecl

完成编译器链接机制的特性:

  1. __stdcall
  2. __fastcall
  3. __cdecl
  4. 它们中的每一个都影响了链接器在编译时管理名称修饰的方式,并且可能由于链接时间开关的不同而导致链接到第三方DLL的连接。

    编辑:感谢您的纠正。