gpt4 book ai didi

assembly - 每个函数名称后面的 @n ("at sign") 是什么?

转载 作者:行者123 更新时间:2023-12-02 19:31:13 48 4
gpt4 key购买 nike

我正在尝试使用 Netwide Assembler 学习汇编语言。

在教程中,我看到有一个 @<em>n</em>在每个函数名称的末尾,例如:

CALL _GetStdHandle@4

CALL _WriteFile@20

CALL _ExitProcess@4

这是什么 @<em>n</em>意思是?

(它似乎是函数名称的一部分,因为如果我修改或删除该部分,我会收到 error LNK2001: unresolved external symbol 错误,但显然它不是生成它的 C 或 C++ 函数名称的一部分。它从哪里来?)

最佳答案

这些是 stdcall name decorations :

Name-decoration convention
An underscore (_) is prefixed to the name. The name is followed by the at sign (@) followed by the number of bytes (in decimal) in the argument list. Therefore, the function declared as int func( int a, double b ) is decorated as follows: _func@12

C/C++ 编译器会自动为您处理这个问题(某些汇编器也会如此),这就是为什么您以前没有见过这个问题。

关于assembly - 每个函数名称后面的 @n ("at sign") 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28039697/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com