C中的名字装饰

时间:2016-06-22 14:01:33

标签: c standards name-decoration

是否有任何标准命令装饰?

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

1 个答案:

答案 0 :(得分:0)

我不确定"标准"但是前面的下划线似乎是一个可以追溯到20世纪70年代的常见惯例。来自What is the reason function names are prefixed with an underscore by the compiler?

  

当大约1974年在C中重写UNIX时,它的作者   已经拥有广泛的assember语言库,而且更容易   破坏新的C和C兼容代码的名称,而不是返回和   修复所有现有代码。

如果要与Windows上的Microsoft编译器进行互操作,则需要C名称(仅限win32; win64不使用装饰,因为它只有一个标准调用约定)。

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

另请参阅:Why do C compilers prepend underscores to external names?