gpt4 book ai didi

c - 不寻常的 C 函数声明

转载 作者:太空狗 更新时间:2023-10-29 16:44:59 24 4
gpt4 key购买 nike

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

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

int bland_dll Read_Chan (usint channel);

bland_dll 在函数名称和返回类型之间做了什么?

谢谢你的灯!

最佳答案

它是一个定义空的宏,所以经过预处理后结果是:

int Read_Chan (usint channel);

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

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

  1. __stdcall
  2. __fastcall
  3. __cdecl

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

编辑:感谢 unwind 的更正。

关于c - 不寻常的 C 函数声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37343433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com