庫函數存放在編譯器裡面了嗎
① C語言的庫函數是系統提供的嗎
庫是由系統提供,也有部分庫是由第三方軟體提供。
庫函數 可以分為系統庫函數和自己編寫的庫函數。
對於系統提供的庫函數,一般存放在系統指定的目錄下 lib之內。
但是這些庫都是編譯成可鏈接的文件,你不能直接看到源代碼,可以再include文件夾里找到這些函數的聲明和一些宏或者常量的定義。
對於用戶自己的庫函數,你可以編譯成庫文件,也可以直接以源代碼方式提供。
對於系統庫函數,你的使用#include <>
對於自己編寫的庫函數,如果你放在了系統庫里可以使用 #include <>,否則使用#include " "
② 在C語言里標准函數存放在什麼文件中
C語言標准庫函數存放在頭文件當中,使用相應函數時需要用include引用先關頭文件。
C語言程序設計里,C 標准函數(C Standard library)是所有目前符合標準的頭文件(head
file)的集合,以及常用的函數庫實現程序,例如 I/O輸入輸出和字串符控制。不像 COBOL、Forrian和 PL/I等編程語言,在 C
語言的工作任務里不會包含嵌入的關鍵字,所以幾乎所有的 C 語言程序都是由標准函數庫的函數來創建的。下面列出C89及C99中C語言標准函數庫的頭文件。
C89中標準的頭文件
<assert.h> 設定斷言點
<ctype.h> 字元處理
<errno.h> 錯誤報告
<float.h> 定義與實現相關的浮點值勤
<limits.h> 定義與實現相關的各種極限值
<locale.h> 支持函數setlocale()
<math.h> 數學函數庫使用的各種定義
<setjmp.h> 支持非局部跳轉
<signal.h> 定義信號值
<stdarg.h> 支持可變長度的變元列表
<stddef.h> 定義常用常數
<stdio.h> 支持文件輸入和輸出
<stdlib.h> 其他各種聲明
<string.h> 支持串函數
<time.h> 支持系統時間函數
C99新增的頭文件和庫
<complex.h> 支持復數演算法
<fenv.h> 給出對浮點狀態標記和浮點環境的其他方面的訪問
<inttypes.h> 定義標準的、可移植的整型類型集合。也支持處理最大寬度整數的函數
<iso646.h> 首先在此1995年第一次修訂時引進,用於定義對應各種運算符的宏
<stdbool.h> 支持布爾數據類型類型。定義宏bool,以便兼容於C++
<stdint.h> 定義標準的、可移植的整型類型集合。該文件包含在<inttypes.h>中
<tgmath.h> 定義一般類型的浮點宏
<wchar.h> 首先在1995年第一次修訂時引進,用於支持多位元組和寬位元組函數
<wctype.h> 首先在1995年第一次修訂時引進,用於支持多位元組和寬位元組分類函數
③ c++標准庫是不是所有的編譯器裡面都有啊
應該這樣說:原則上,所有被稱作C++編譯器的軟體都應該遵循C++標准(ISO C++,可查閱網路知道),然後在此基礎上可以擴充。也就是說原則上,C++標准庫是都有的。但不排除少數編譯器並不完全遵循標准,比如他們覺得某個函數在某處出現是不科學的,或如果換個方式做更好,有可能不理會標准。
STL是標准庫中的,不然為啥叫STL(Standard)?但不是一開始就有STL,所以不是任何時代的C++編譯器都能支持STL。與上面同理,也不是所有廠商的所有編譯器都會恪守STL。只能說是絕大多數是。
庫函數當然就是庫里的函數啦~呵呵。