編譯器連接一定需要連接地址嗎
Ⅰ 程序的編譯鏈接過程
stdio.h 只是一個函數聲明的頭文件, 實現在已經編譯好的庫文件中,一般情況 IDE 會自動連接標准庫,不需要你管。
Ⅱ 計算機c語言 編譯後直接執行,不經過連接可以嗎
不可以,
Ⅲ 簡述一下編譯器和鏈接器的作用
1、編譯器:
編譯器對源文件進行編譯,就是把源文件中的文本形式存在的源代碼翻譯成機器語言形式的目標文件的過程,在這個過程中,編譯器會進行一系列的語法檢查。如果編譯通過,就會把對應的CPP轉換成OBJ文件。
2、鏈接器:
當鏈接器進行鏈接的時候,首先決定各個目標文件在最終可執行文件里的位置。然後訪問所有目標文件的地址重定義表,對其中記錄的地址進行重定向(加上一個偏移量,即該編譯單元在可執行文件上的起始地址)。
然後遍歷所有目標文件的未解決符號表,並且在所有的導出符號表裡查找匹配的符號,並在未解決符號表中所記錄的位置上填寫實現地址。最後把所有的目標文件的內容寫在各自的位置上,再作一些另的工作,就生成一個可執行文件。
Ⅳ 計算機c語言 為什麼經過編譯就可以執行,沒有經過連接
C語言是通過編譯器與電腦進行交流。不用經過連接。
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言訂定了一套完整的國際標准語法,稱為ANSI C,作為C語言最初的標准。
Ⅳ 在下載了c和易語言編譯器後,在學習和編程的時候是否要連接網路
不需要的 你可以一直單機下去O(∩_∩)O~
Ⅵ c語言為何需要編譯和連接才能運行
的文件(也稱為源代碼)而已,需要經過1定的處理才能轉換成機器上可運行的可履行文件。
我們將對C語言的這類處理進程稱為編譯與鏈接。
Ⅶ 關於C的地址問題
例如
int a[10];
數組的起始地址就是數組名。
這個數組名就是起始地址,是在編譯的時候,放在了一個叫「符號表」的地方,
每個符號對應一個地址,這樣在使用這個符號訪問的時候,它會從符號表中找到這個符號對應的起始地址。從而達到數組的訪問。
數組內存空間上是連續分布的。只是對於
不同類型的數組,它的移動長度不一樣。
例如
int a[10];
a+1;是地址移動了4個位元組,因為int佔4個位元組。
char a[10];
a+1;是地址移動了1個位元組,因為char佔1個位元組。
嚴格的說,不存在多維數組,只不過這個數組存儲的類型是個數組而已。
可以理解為數組類型的數組。
Ⅷ 在計算機編程中,我們知道在編譯器里使用的是邏輯地址,但是CPU訪問要用到實際物理地址,那這個地址是
計算機的cpu裡面都有一張tlb映射表,是一種緩存。
當cpu接收到應用程序傳過來的虛擬地址的時候,根據這張表轉換成物理地址再去訪問。是cpu邊執行邊換轉的。
具體樓主可以搜索一下tlb的相關知識。
Ⅸ 自己電腦上的編譯器VC6.0為什麼需要連接到自己電腦上的資料庫呀有什麼好處嗎需要文件交換的
vc6是比較純凈的編譯器了,幾乎不受net限制
Ⅹ c++編譯器地址
先說明白什麼意思
gcc g++ qcc。。。等等