C.的名称装饰



是否有任何标准授权名称装饰?

据我所知(全部?)符合实现的实现,将每个导出符号的名称添加了下划线前缀。这是由C,POSIX还是其他标准保证的?

我不确定"标准",但是预期的下划线似乎是1970年代的一个非常普遍的约定。来自什么原因是函数名称由编译器以下划线为前缀的原因?:

在1974年左右在C中重写Unix时,其作者 已经有广泛的Assember语言库,而且更容易 要处理新C和C兼容代码的名称,而不是回去 修复所有现有代码。

如果要与Windows上的Microsoft编译器进行互操作,则需要C名称(仅Win32; Win64不使用装饰,因为它只有单个标准调用惯例)。

https://learn.microsoft.com/en-us/cpp/build/reference/decorated-names

另请参见:为什么C编译器预先指示外部名称?

相关内容

  • 没有找到相关文章

最新更新