[問題] C run-time library 和 standard library

看板C_and_CPP (C/C++)作者時間14年前 (2012/02/20 21:47), 編輯推噓6(6012)
留言18則, 4人參與, 最新討論串1/1
作者: BombCat (炸彈貓) 看板: C_and_CPP 標題: [問題] C run-time library 和 standard library 時間: Mon Feb 20 21:47:56 2012 C run-time library 和 standard library 的差別 關於CRT跟standard library我有些疑問,自行google了一下但不知道對不對 1. C run-time library 和 standard library 的定義是什麼? standard library應該就是C99規範要內建支持的函數所組成的函數庫 不過run-time library網路上就有好幾種說法了,其中比較常看到的有 a.有很多函式庫的功能不是編譯後就確定好的,必須在程式在執行期才會確定的 函數庫 b.Library 與主程式連結(link)的時期來做區別 不過感覺都有點奇怪,我個人認為是支持程式運行所需要的函數所組成的函數庫 ,像I/O、malloc等等 不過這是我疑惑的地方"支持程式運行"的定義是什麼? 2. run-time library是standard library的一部分嗎? 我覺得是一部分,不過有些網頁說兩者就是同一個東西? 想請教各位網友的看法 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.205.55.3 ※ 編輯: BombCat 來自: 123.205.55.3 (02/20 22:03)

02/20 22:12, , 1F
CRT 是微軟的稱呼,GNU 版實作叫 glibc
02/20 22:12, 1F

02/20 22:14, , 2F
C99...CRT的字典裡沒這東西
02/20 22:14, 2F

02/20 22:18, , 3F
CRT run-time library : http://ppt.cc/QC@w
02/20 22:18, 3F

02/20 22:20, , 4F
Alpha Functions : http://ppt.cc/drS4 , 明顯多很多.
02/20 22:20, 4F

02/20 22:21, , 5F
從微軟公開的 run-time library, 有很多是底線開頭的東
02/20 22:21, 5F

02/20 22:21, , 6F
西,而底線開頭的東西便是提示:非標準函式庫,這個編譯
02/20 22:21, 6F

02/20 22:22, , 7F
器特有,故我「以為」,CRT 裡面有很多 library,而
02/20 22:22, 7F

02/20 22:23, , 8F
standard library 也包含其中 (或說VC 實作 std. lib.
02/20 22:23, 8F

02/20 22:24, , 9F
時, 可能會調用到 CRT 裡面的函式). 這是我的認知。
02/20 22:24, 9F

02/20 22:25, , 10F
<嘴雜多說一句,VC,CRT 裡面有很多非標準函式很好用.>
02/20 22:25, 10F

02/21 09:06, , 11F
其實沒有跨平台的問題,我也很愛非標準函式.
02/21 09:06, 11F
謝謝大大提供的資料 standard library是run-time library的一部分沒錯 ※ 編輯: BombCat 來自: 123.205.55.3 (02/21 12:26)

02/21 12:38, , 12F
那就只是其中一組的藝名而已,微軟想取什麼都行,所有
02/21 12:38, 12F

02/21 12:38, , 13F
請上 MSDN 查詢,以文件為準
02/21 12:38, 13F
※ 編輯: BombCat 來自: 123.205.55.3 (02/21 13:06)

02/22 00:52, , 14F
也能看成std lib是訂好的標準介面,而WIN32/LINUX上的CRT
02/22 00:52, 14F

02/22 00:54, , 15F
跟glibc則提供了該介面的OS相依的實作
02/22 00:54, 15F

02/22 00:55, , 16F
所以你呼叫std::xxxx 才可以在windows/linux上都能跑
02/22 00:55, 16F

02/22 08:49, , 17F
兩者是分開的吧!run-time library是微軟獨立實作.
02/22 08:49, 17F

02/23 00:23, , 18F
對,我是指window的CRT跟linux的glibc都實作了std標準介面
02/23 00:23, 18F
文章代碼(AID): #1FGayEU- (C_and_CPP)
文章代碼(AID): #1FGayEU- (C_and_CPP)