VS 链路错误描述中的"@@YAHXZ"是什么意思?



我想了解此类错误的@@YAHXZ部分:

错误lnk2019未解决的外部符号" int __cdecl func2(void)" (?func2 @@ yahxz)在函数中引用_main。

这只是一个例子,但是我已经看到了其他类型的奇怪字母,我现在不记得它们。我在哪里可以找到它们的解释?

这被称为«名称mangling»或«名称装饰»。

当C 支持函数过载时,符号的名称是以特定方式生成的,通常是基于参数类型的。

这是Microsoft网站上的官方文档:
https://msdn.microsoft.com/en-us/library/56H2ZST2.aspx

编辑

Microsoft没有提供有关名称装饰的完整文档。
如果您有兴趣确切知道符号的含义,我建议您阅读 Agner Fog关于调用约定的文档
http://www.agner.org/optimize/calling_conventions.pdf

最新更新