gpt4 book ai didi

objective-c - 在 Objective-C ARC 中,什么是 "BPTRs declared within extern "BCPL“ block ”?

转载 作者:太空狗 更新时间:2023-10-30 03:41:56 26 4
gpt4 key购买 nike

Clang documentation for ARC ,它说:

ARC applies to Objective-C pointer types, block pointer types, and [beginning Apple 8.0, LLVM 3.8] BPTRs declared within extern "BCPL" blocks.

这些“在外部“BCPL” block 中声明的 BPTR”是什么?

最佳答案

这是一个小玩笑。

C++ 能够使用 C 链接来标记标识符,这通常意味着不会对具有相同名称但参数签名不同的函数进行名称重整,因为直到最近,C 还没有重载的概念1.

指定链接的方式是将标识符包围起来:

extern "C" {
whatever ...
}

现在,BCPL 是一种甚至早于 C 的语言(它实际上构成了 C 血统的一部分),它的“链接”(需要一个更好的词)只是一个称为全局向量的地址表。

您引用的那个文档的作者只是在幽默,C​​Lang 实际上并没有提供 extern "BCPL" 东西。您还会注意到 LLVM 的当前版本是 3.2,而 3.3 版本要到今年 6 月才会发布。 LLVM 3.8 评论表明作者正在让我们继续前进。

由于这句话的目的只是为了说明注释(在 [] 中)是如何工作的,因此文本的其余部分在很大程度上是无关紧要的。


1 随着 C11 中类型泛型表达式的引入,它现在具有某种重载,尽管是在编译时而不是运行时完成的。

关于objective-c - 在 Objective-C ARC 中,什么是 "BPTRs declared within extern "BCPL“ block ”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16429587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com