是否有任何标准的授权名称装饰?
据我所知,大多数(全部?)符合标准的实现都会在每个导出符号的名称中添加下划线前缀。这是由 C、POSIX 或其他标准保证的吗?
是否有任何标准的授权名称装饰?
据我所知,大多数(全部?)符合标准的实现都会在每个导出符号的名称中添加下划线前缀。这是由 C、POSIX 或其他标准保证的吗?
我不确定“标准”,但前置下划线似乎是 1970 年代非常普遍的约定。编译器在函数名称前加上下划线的原因是什么?:
在 1974 年左右用 C 重写 UNIX 的时候,它的作者已经拥有大量的汇编语言库,而且修改新的 C 和 C 兼容代码的名称比返回并修复所有现有代码更容易。
如果您想与 Windows 上的 Microsoft 编译器互操作,则 C 名称是必需的(仅限 win32;win64 不使用修饰,因为它只有一个标准调用约定)。
https://docs.microsoft.com/en-us/cpp/build/reference/decorated-names