我最近接受了一次采访,有人问我,在 C + + 代码中使用 extern "C"
有什么用。我回答说,它是在 C + + 代码中使用 C 函数,因为 C 不使用名称混淆。有人问我为什么 C 不使用名字拼写,老实说,我无法回答。
我知道当 C + + 编译器编译函数时,它给函数起了一个特殊的名字,主要是因为我们可以在 C + + 中重载同名的函数,这些函数必须在编译时解析。在 C 语言中,函数的名称保持不变,或者前面加一个 _。
我的疑问是: 让 C + + 编译器也破坏 C 函数有什么错?我会假设编译器给它们起什么名字并不重要。我们在 C 和 C + + 中以相同的方式调用函数。