簡體   English   中英

在Objective-C ARC中,什么是“在extern中聲明的BPTR”BCPL“塊”?

[英]In Objective-C ARC, what are “BPTRs declared within extern ”BCPL“ blocks”?

ARCClang文檔中 ,它說:

ARC適用於在extern“BCPL”塊中聲明的Objective-C指針類型,塊指針類型和[開始Apple 8.0,LLVM 3.8] BPTR。

這些“在外部”BCPL“塊”中聲明的“BPTR”是什么?

這是一個小小的玩笑。

C ++能夠使用C鏈接標記標識符,這通常只意味着沒有名稱修改具有相同名稱但不同參數簽名的函數,因為C直到最近才沒有重載的概念1

指定鏈接的方式是將標識符包圍在:

extern "C" {
    whatever ...
}

現在,BCPL是一種甚至比C更早的語言(它實際上構成了C譜系的一部分),它的“鏈接”(因為缺少一個更好的詞)只是一個稱為全局向量的地址表。

你引用的那篇文章的作者只是幽默,CLang實際上並沒有提供 extern "BCPL" 您還會注意到當前版本的LLVM是3.2,而3.3直到今年6月才到期。 另一個跡象表明作者正在使用LLVM 3.8評論。

由於該句子的意圖僅僅是為了說明注釋(在[] )是如何工作的,因此文本的其余部分基本上是無關緊要的。


1隨着C11中類型泛型表達式的引入,它現在有重載的重載,盡管在編譯時而不是在運行時完成。

這條線顯然是從一個未知的上下文中隨機獲取的,只是為了演示修訂標記,如[開始Apple 8.0,LLVM 3.8],而BPTR和BCPL並不意味着任何特定的。 通常,BPTR意味着像字節指針。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM