『壹』 c語言中頭文件中(比如stdlib.h)定義的函數在哪實現的,怎麼才能查看到請高人解答
頭文件是編譯器自帶的,你可以在編譯器的文件夾下找到,不同編譯器存放位置不一樣,我用的vc++,位置是F:\Microsoft Visual Studio\VC98\Include,裡面有stdio.h,和各種頭文件。
找到後那記事本打開就能看了。
『貳』 用#include導入一個.h文件,該.h中聲明了一個函數原型,編譯器怎麼知道定義該函數的.c文件的文件位置
反了,是從C找。H文件,C有#include,一找就找到了
『叄』 請問編譯器是通過函數的入口地址來找到函數,那又是如何知道函數的結束呢
函數入口是一段指令的首地址,進入函數實際是從這段指令開始執行,執行到return語句,函數就結束了
『肆』 文件A.c里有a()函數,文件B.c里要調用a()函數。編譯B.c時,編譯器怎麼知道a()函數在哪裡
B.c中 #include "A.c"就行了,不過最好是做個頭文件,把介面函數聲明在頭文件裡面。
『伍』 使用DSP編譯器ccs時,如何通過函數的調用處,快速找到函數的定義處。
CCS有這個功能啊!把滑鼠移動到一個函數上面,就顯示一個淡黃色的框,其中顯示函數名稱,點第一行的f符號就跳轉到函數的原型,即函數的正文,點第二行的fx符號就跳轉到這函數在頭文件中的聲明。
『陸』 在keil中,某個程序調用了一個外部函數,我怎麼能知道這個外部函數在哪裡呢
是你想找到那個函數還是想知道,程序是如何找到那個函數的。
你想找,就用 keil的查找功能,Edit-> Find in Files...
程序在編譯時不需要知道它在哪裡,只要知道它是個函數名,它的類型及參數列表就行。
在編譯完鏈接時,會去查找工程中所有函數的列表,有沒有這個函數,有就把函數地址放進來,沒有就會報錯。
『柒』 有沒有一種編譯器能在很多文件中查找某個函數 ,C寫的 ,想快速查找某一個函數在哪一個C文件裡面
一般的編譯器都有 右鍵->Go to definition 的把
『捌』 C語言的庫函數放在什麼地方(在什麼目錄里)
C語言的庫函數在LIB目錄裡面。
庫函數是將函數封裝入庫,供用戶使用的一種方式。方法是把一些常用到的函數編完放到一個文件里,供不同的人進行調用。調用的時候把它所在的文件名用#include<>加到裡面就可以了。一般是放到lib文件里的。
(8)編譯器如何找到函數位置擴展閱讀:
C語言的語句十分簡單,如果要使用C語言的語句直接計算sin或cos函數,就需要編寫頗為復雜的程序。因為C語言的語句中沒有提供直接計算sin或cos函數的語句。又如為了顯示一段文字,我們在C語言中也找不到顯示語句,只能使用庫函數printf。
C語言的庫函數並不是C語言本身的一部分,它是由編譯程序根據一般用戶的需要編制並提供用戶使用的一組程序。C的庫函數極大地方便了用戶,同時也補充了C語言本身的不足。事實上,在編寫C語言程序時,應當盡可能多地使用庫函數,這樣既可以提高程序的運行效率,又可以提高編程的質量。
『玖』 一直有個疑惑,C/C++編譯器是如何調用函數的
函數的調用就是 跳轉到函數體的入口地址。
函數體本身的存儲空間是在exe里txt段,然後運行載入的時候映射到地址空間。不過看你的問題,你關注的不是這個的佔用。
關於你問的問題, 其實是因為一旦定義了虛函數,在C++類型的頭部,就會有一個指針的隱藏變數被定義,從而該類型的每個對象都會有這個變數的大小。 這個只有類型有和沒有虛函數的區別,虛函數的個數造成內存增長只是虛表裡(每class一個),每個對象里只是存的一個指針,不會有size變化。
對於非虛的函數,編譯的時候,直接就是填寫的函數體的入口地址; 而虛函數,則是要經過計算,先通過對象頭部寸的虛表指針找到虛表,再去找對應的虛表項 ,裡面存儲的就是需要的函數的入口地址。
建議樓主看看 C++布局方面的書,比如 <Inside C++ Object Model>, 以及平時多用VS操練一下調試技巧,然後適當熟悉簡單的匯編代碼,對融會貫通很有幫助。
『拾』 編譯器如何判斷一個函數在cpp文件里的位置(即如何判斷一個函數是否正確)
如果是普通的函數,可以在A文件中進行聲明,B文件中進行定義,C文件中使用。但是如果該函數是類的成員函數,那麼使用該函數需要使用對象進行調用,不能直接進行調用。