我目前正在使用一个旧的C库(在90年代早期制作),以下函数声明使我感到困惑:
#define bland_dll
typedef unsigned short int usint;
typedef unsigned char uchar;
int bland_dll Read_Chan (usint channel);
函数名称和返回类型之间的bland_dll
是什么?
谢谢你的灯!
答案 0 :(得分:7)
它的宏定义为空,所以当预处理时,结果是:
int Read_Chan (usint channel);
我怀疑,它是从早期声明DLL链接类型的延续,例如pascal
,它对链接器有特殊意义。另一个例子是__cdecl
。
完成编译器链接机制的特性:
__stdcall
__fastcall
__cdecl
它们中的每一个都影响了链接器在编译时管理名称修饰的方式,并且可能由于链接时间开关的不同而导致链接到第三方DLL的连接。
编辑:感谢您的纠正。