我熟悉 extern 关键字,它用于声明其他文件中存在的变量,但是以下语句是什么意思?
extern "C" const IMAGE_DOS_HEADER __ImageBase;
这意味着__ImageBase
全局变量使用C 链接,并且应该使用 C 而不是 C++ 的规则来修改其名称。
编辑:恰好Raymond Chen最近发表了一篇文章,证明我的原始答案是完全错误的:extern "C"
不禁用名称修改,它只会更改用于执行它的规则。C 名称也可以被破坏。
__ImageBase
这意味着不要破坏extern "C"
. 简而言之,它确保您可以在 C++ 代码中使用该变量。
extern "C"
指定要应用的链接。简而言之,一个链接规范。
它告诉 C++ 编译器将 C 类型的链接应用到后面的符号。