以下摘自《edyang 語(yǔ)錄》: 記住一個(gè)人,最重要的是記住他/她/它是男人/女人/東東,有沒(méi)有貶過(guò),有沒(méi)有吻過(guò),有沒(méi)有咬過(guò),名字記不住反而關(guān)緊要。 C Run-time Library C Run-time library,是 C 而非 C++ 語(yǔ)言世界的概念,取這個(gè)名字就是因?yàn)槟愕?C 程序運(yùn)行時(shí)需要這些庫(kù)中的函數(shù). 大家在學(xué)過(guò)C++之后,可能對(duì)C Runtime Library這個(gè)名字有一定的誤會(huì),可能認(rèn)為是運(yùn)行時(shí)庫(kù)是動(dòng)態(tài)鏈接的,其實(shí)不然,想想C語(yǔ)言其實(shí)沒(méi)有C++的多態(tài)性,不可能做到動(dòng)態(tài)綁定的,所以應(yīng)該只 是一個(gè)庫(kù)的名字而已。在你寫 C 代碼的時(shí)候,用的函數(shù)都是從 C run-time library 的頭文件來(lái)的,編譯連接時(shí)還是要連接 C run-time library 里的庫(kù)函數(shù),運(yùn)行時(shí)用的二進(jìn)制代碼也只不過(guò) C run-time library 里的庫(kù)函數(shù)的 copy 罷了。可能因?yàn)楝F(xiàn)在動(dòng)態(tài)連接庫(kù)太普遍了,所以對(duì)Runtime比較敏感。 C語(yǔ)言是所謂的“小內(nèi)核”語(yǔ)言,就其語(yǔ)言本身來(lái)說(shuō)很?。ú欢嗟年P(guān)鍵之,程序流程控制,數(shù)據(jù)類型等);所以,C 語(yǔ)言內(nèi)核開發(fā)出來(lái)之后,Dennis Ritchie 和 Brian Kernighan 就用 C 本身重寫了 90% 以上的 UNIX 系統(tǒng)函數(shù),并且把其中最常用的部分獨(dú)立出來(lái),形成頭文件和對(duì)應(yīng)的 LIBRARY,C run-time library 就是這樣形成的??赡苣菚r(shí)還沒(méi)有這個(gè)叫法,Ritchie 和 Kernighan 合著的《The C Programmin Language》第二版中叫做“Standard Library”,不太清楚什么時(shí)候開始有人發(fā)明 C run-time library 的叫法。 在英語(yǔ)里,C
run-time library 是一種很自然而然的叫法。隨后,隨著 C 語(yǔ)言的流行,各個(gè) C
編譯器的生產(chǎn)商/個(gè)體/團(tuán)體都遵循老的傳統(tǒng),在不同平臺(tái)上都有相對(duì)應(yīng)的 Standard
Library,但大部分實(shí)現(xiàn)都是于各個(gè)平臺(tái)有關(guān)的。由于各個(gè) C 編譯器對(duì) C 的支持和理解有很多分歧和微妙的差別,所以就有了 ANSI
C;ANSI C (主觀意圖上)詳細(xì)的規(guī)定了 C 語(yǔ)言各個(gè)要素的具體含義和編譯器實(shí)現(xiàn)要求,引進(jìn)了新的函數(shù)聲明方式,同時(shí)訂立了
Standard Library 的標(biāo)準(zhǔn)形式。至于由其他廠商/個(gè)人/團(tuán)體提供的頭文件和庫(kù)函數(shù),應(yīng)當(dāng)稱為第三方 C 運(yùn)行庫(kù)(Third
party C run-time libraries)。 |
|
來(lái)自: win2zhang > 《vs調(diào)試》