[晕事]今天做了件晕事37 extern “C“ 被认为了是外部函数
最近看到一个函数声明是
extern “C" void _dump();
这里的声明是要告诉编译器,这个_dump是C语言的符号,没有经过mangle过的。但是这个关键字可能让人混淆是外部函数。因为这个关键字可以声明外部函数。这也算是一词多用的一个普遍问题。关键的关键是上面的这种写法,可能会让人产生一种错觉,这个函数是外部函数!如果同时_dump 是外部函数,需要这样来声明,下面这种写法比较推荐:
extern "C"
{
extern void _dump();
}
记得有一句古话:大意失荆州!这个晕事也算是一个好的例子。因为这两个的含义之前都知道,一时迷惑忘记关心,或者有一种错觉,导致错误产生!