当我查看Visual C ++链接器为C函数创建的符号时,它始终以下划线开头。例如,int example(int)的符号格式为_example

我想知道这是否在C标准中指定了吗?如果不是,那么我想知道这是否由x86 / x64的任何C ABI指定?

我希望有人能启发我。

编辑:我对此感兴趣的原因是,我已经看到至少在x86平台上,下划线前缀很常见。感觉很奇怪,这是巧合,所以我想知道是否是某些Intel x86 ABI或类似的东西正在定义这个?

最佳答案

正如H2CO3所说,它不是标准所指定的,但是某些调用约定在特定平台上或多或少是一致的。对于X86,x86 Disassembly Wikibook: Calling Conventions中有一篇不错的文章,但是这些没有受标准的规范(甚至说编译器“经常”修饰函数名,并且您应始终检查特定的编译器如何实现调用约定)。 。

关于c - C是否标准化链接器符号命名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19468573/

10-15 01:21