在Clang documentation for ARC中,它说:
这些“在外部“BCPL”块内声明的BPTR”是什么?
最佳答案
这是个小玩笑。
C++具有使用C链接标记标识符的能力,这通常意味着没有名称相同但参数签名不同的函数的名称修饰,因为C直到最近还没有重载的概念。
您通过以下方式将标识符括起来来指定链接:
extern "C" {
whatever ...
}
现在,BCPL是一种甚至早于C的语言(它实际上构成了C谱系的一部分),而它的“链接”(因为缺少更好的词)只是一个称为全局向量的地址表。
您所引用的文档的作者只是幽默,CLang实际上并没有提供
extern "BCPL"
的东西。您还将注意到,LLVM的当前版本是3.2,而3.3版本要到今年6月才到期。 LLVM 3.8评论提供了作者正在接受我们的另一个迹象。由于该句子的目的只是为了显示批注(在
[]
中)的工作方式,因此文本的其余部分基本上无关紧要。1随着C11中类型通用表达式的引入,它现在具有某种类型的重载,尽管它是在编译时而不是在运行时完成的。