2013-05-07 46 views

回答

6

這是在玩笑小。因爲C直到最近還沒有超載的概念,所以C++有能力使用C鏈接來標記標識符,這通常意味着沒有命名同一名稱但不同的參數簽名。

您指定聯動的方式是通過標識符與周邊:

extern "C" { 
    whatever ... 
} 

現在,BCPL是預先日期甚至C(它實際上形成的C系的一部分)的語言和它的「聯動「(因爲缺乏一個更好的詞)只是一個稱爲全局向量的地址表。

您參考的文檔的作者僅僅是幽默,CLang實際上並不提供提供extern "BCPL"的東西。您還會注意到,當前版本的LLVM在3.2之前是3.2版本,直到今年6月纔會發佈。 LLVM 3.8評論的另一個跡象表明作者正在使用我們。

由於那句話的目的只是顯示註釋(內[])是如何工作的,文本的其餘部分主要是無關緊要的。


隨着C11的引入類型的通用表達式,現在它已經超載了幾分,但在編譯的時候,而不是運行時完成。

2

此行顯然是隨機從一個不知名的方面採取的只是爲了演示修訂標記,例如[開始蘋果8.0,LLVM 3.8和BPTRs和BCPL並不意味着具體的事情。一般來說,BPTR的意思是像字節指針。

+1

如果我可以提供一個修正,BPTR是AmigaOS聲明的類型,如AmigaDOS是榮譽學位的端口,寫在BCPL。 AmigaOS使用APTR作爲「地址指針」,而BPTR作爲「BCPL指針」。 BPTRs不是字節指針,因爲BCPL本身就是一個字解決虛擬機,而不是一個字節尋址的機器像C.因此,要BPTRs轉換爲字節地址,您將評估AP =(APTR)(((WORD)BP) *的sizeof(WORD))。大多數程序員只會做出一些硬件假設,並寫出ap =(APTR)(bp << 2)等。 – 2014-03-29 04:18:45

+1

嗨塞繆爾,感謝您的評論 - 我不知道這一點。偉大的信息! – 2014-03-30 12:49:41