[英]Use of Extern keyword
我熟悉extern关键字,它用于声明存在于其他文件中的变量,但是以下语句是什么意思?
extern "C" const IMAGE_DOS_HEADER __ImageBase;
这意味着__ImageBase
全局变量使用C链接 ,并且它的名字应该被错位使用的C而不是C规则++。
编辑:碰巧的是, 雷蒙德·陈(Raymond Chen)最近发表了一篇文章 ,证明我的原始答案是完全错误的: extern "C"
不会禁用名称修饰,它只会更改用于执行名称修饰的规则 。 C名称也可以修改。
这意味着不要__ImageBase
符号“ __ImageBase
extern "C"
__ImageBase
的符号extern "C"
。 简而言之,它确保您可以在C ++代码中使用变量。
extern "C"
指定要应用的链接。 简而言之,是链接规范。
它告诉C ++编译器将C类型的链接应用于后面的符号。
读得好:
使用extern指定链接
如何混合使用C和C ++
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.