簡體   English   中英

C 和 C++ 標准庫是用什么語言編寫的? 他們的源代碼在哪里?

[英]In what languages are the C and C++ standard libraries written? Where is their source code?

我一直想知道 C/C++ 運行時和標准庫是用什么語言編寫的。起初我以為它是一種隨意的 C/C++ 語言,但要能夠與機器對話,我懷疑 C/C++ 是否足夠。 因此,我認為它可能是匯編語言。 如果是 C/C++ 或 asm 語言,那為什么我真的看不到源代碼飛來飛去? 或者我可能缺乏搜索技巧......

所有運行時和標准庫都是用 C/C++ 編寫的。 大多數供應商都提供源代碼。

它們通常用 C 編寫,並混入一些程序集。Visual Studio 附帶大量用於 CRT(C 運行時)的源代碼,如果不是全部的話。 Linux glibc 顯然是開源的: http://ftp.gnu.org/gnu/glibc/

它們通常用它們的宿主語言編寫,與操作系統 API 互操作以獲得本地無法獲得的東西。 許多功能都是用純語言編寫的——例如,C++ 標准庫的容器和算法部分幾乎必須用 C++ 編寫。 事實上,幾乎整個 C++ 標准庫都必須用 C++ 編寫,因為它是模板化的。 我不知道你為什么沒有找到任何源代碼——微軟 CRT 源代碼可供任何開發人員使用,我想,我肯定在這里看到了關於發布 CRT 源代碼的問題,而且 GNU libc++ 是開源的,我我很確定。

大多數運行時都是用 C 或 C++ 編寫的,但有一個重要的例外,那就是調用 kernel 的代碼。 在大多數操作系統上,這是通過在 arm 上使用特殊指令( SWISVC )生成軟件中斷來完成的。 在 C 或 C++ 中沒有等效項,因此將使用匯編程序。 匯編器也通常用於實現高度優化的memcpymemmovememcmp和其他類似功能。

暫無
暫無

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

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