很遺憾,標準庫中的函數(shù)結(jié)合了系統(tǒng),硬件等的綜合能力,是比較近機器的功能實現(xiàn),所以大部分是用匯編完成的,而且已經(jīng)導(dǎo)入到了lib和dll里了,就是說,他們已經(jīng)被編譯好了,似乎沒有代碼的存在了.
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)由有經(jīng)驗的網(wǎng)站設(shè)計師、開發(fā)人員和項目經(jīng)理組成的專業(yè)建站團隊,負責(zé)網(wǎng)站視覺設(shè)計、用戶體驗優(yōu)化、交互設(shè)計和前端開發(fā)等方面的工作,以確保網(wǎng)站外觀精美、網(wǎng)站建設(shè)、網(wǎng)站制作易于使用并且具有良好的響應(yīng)性。
能看到的也只有dll中有多少函數(shù)被共享.
第三方可能都是dll,因為上面也說了,dll是編譯好的,只能看到成品,就可以隱藏代碼,保護自己的知識產(chǎn)權(quán),同時也是病毒的歸宿...... 當(dāng)然,除了DLL的確還存在一種東西,插件程序~~~
頭文件和源文件在本質(zhì)上沒有任何區(qū)別。?? 只不過一般:后綴為 ?.h 的文件是頭文件,內(nèi)含函數(shù)聲明、宏定義、結(jié)構(gòu)體定義等內(nèi)容。后綴為 ?.c 的文件是源文件,內(nèi)含函數(shù)實現(xiàn),變量定義等內(nèi)容。而且是什么后綴也沒有關(guān)系,只不過編譯器會默認對某些后綴的文件采取某些動作。這樣分開寫成兩個文件是一個良好的編程風(fēng)格。
簡單的說其實要理解C文件與頭文件(即.h)有什么不同之處,首先需要弄明白編譯器的工作過程,一般說來編譯器會做以下幾個過程:
①預(yù)處理階段
②詞法與語法分析階段
③ 編譯階段,首先編譯成純匯編語句,再將之匯編成跟CPU相關(guān)的二進制碼,生成各 ? ? ? ? 個目標文件 (.obj文件)
④連接階段,將各個目標文件中的各段代碼進行絕對地址定位,生成跟特定平臺相關(guān) ? ? ? ? ? 的可執(zhí)行文件,當(dāng)然,最后還可以用objcopy生成純二進制碼,也就是去掉了文件格 ? ? ? ? 式信 息。(生成.exe文件)
3.比方說 在aaa.h里定義了一個函數(shù)的聲明,然后在aaa.h的同一個目錄下建立aaa.c , aaa.c里定義了這個函數(shù)的實現(xiàn),然后是在main函數(shù)所在.c文件里#include這個aaa.h? 然后我就可以使用這個函數(shù)了。 main在運行時就會找到這個定義了這個函數(shù)的aaa.c文件。這是因為:main函數(shù)為標準C/C++的程序入口,編譯器會先找到該函數(shù)所在的文件。假定編譯程序編譯myproj.c(其中含main())時,發(fā)現(xiàn)它include了mylib.h(其中聲明了函數(shù)void test()),那么此時編譯器將按照事先設(shè)定的路徑(Include路徑列表及代碼文件所在的路徑)查找與之同名的實現(xiàn)文件(擴展名為.cpp或.c,此例中為mylib.c),如果找到該文件,并在其中找到該函數(shù)(此例中為void test())的實現(xiàn)代碼,則繼續(xù)編譯;如果在指定目錄找不到實現(xiàn)文件,或者在該文件及后續(xù)的各include文件中未找到實現(xiàn)代碼,則返回一個編譯錯誤.其實include的過程完全可以“看成”是一個文件拼接的過程,將聲明和實現(xiàn)分別寫在頭文件及C文件中,或者將二者同時寫在頭文件中,理論上沒有本質(zhì)的區(qū)別。以上是所謂動態(tài)方式。對于靜態(tài)方式,基本所有的C/C++編譯器都支持一種鏈接方式被稱為Static Link,即所謂靜態(tài)鏈接。在這種方式下,我們所要做的,就是寫出包含函數(shù),類等等聲明的頭文件(a.h,b.h,...),以及他們對應(yīng)的實現(xiàn)文件(a.cpp,b.cpp,...),編譯程序會將其編譯為靜態(tài)的庫文件(a.lib,b.lib,...)。在隨后的代碼重用過程中,我們只需要提供相應(yīng)的頭文件(.h)和相應(yīng)的庫文件(.lib),就可以使用過去的代碼了。相對動態(tài)方式而言,靜態(tài)方式的好處是實現(xiàn)代碼的隱蔽性,即C++中提倡的“接口對外,實現(xiàn)代碼不可見”。有利于庫文件的轉(zhuǎn)發(fā).
頭文件被包含在源文件里,要應(yīng)用某個函數(shù)就要寫上相應(yīng)的頭文件,而頭文件是在源文件里的.當(dāng)我們寫好了一個源文件,如果愿文件有某種一般功能,我們可以保存起來,以后在寫別的愿程序代碼時通過些頭文件,便可直接應(yīng)用里面的函數(shù)了.
VC++里面就有源代碼啊,你在VC的目錄里面去找,有個library文件夾,里面就是源代碼
具體目錄我忘了,或者是include文件夾里面,你在VC的根目錄下搜索*.C或*.cpp的文件就可以找到了,再不然就是你沒有安裝源文件,請重新運行安裝程序,把源文件添加進去就行了。