⑴ 翻譯單元和文件的理解
你首先要弄清編譯原理和過程
預處理是什麼回事
才能理解這段話的意思
否則我下面的回答你也一定看不明白的
.
在c源代碼中
所有#打頭的行都是編譯指令(也叫宏指令)
而不是c語句(所以沒有分號結尾)
這些編譯指令的作用就是對源代碼進行預處理
然後再把預處理的結果進行編譯
.
【翻譯單元】就是把一個c源文件做預處理之後得到的結果
這個結果只是一個臨時文件
文中說的【後面那個單獨文件】就是指這個文件
因為接著就要自動進行編譯
通常個文件都不保存到硬碟
所以只是一個邏輯文件
不是一個物理文件
而存在硬碟上的源代碼文件就被叫做【物理文件】
.
【文件依次包含其他頭文件】
就是指頭文件里還可以有「#include」指令
最後都要依次層層展開
由一個個物理文件組合成一個邏輯文件
這就是編譯單元——【後面那個單獨文件】
.
【是源代碼和頭文件二者合一看成是一個單獨文件;還是源代碼和頭文件均為獨立文件?】
你這一問句表明你對【單獨文件】的意思完全不理解而亂說一通
沒有任何意義的
.
建議你先弄清編譯原理
再來看這段話
⑵ 在同一編譯單元用extern和不用有什麼區別
對函數來說沒區別,不用extern的函數默認就是extern的,即其他文件也可以調用這個函數;但對變數來說有區別,不用extern聲明變數的話,變數默認是static的,其他文件不能使用這個變數。那麼如果所有函數和變數都只放在一個文件里進行編譯,用不用extern就沒有任何區別了。
⑶ 保存 失敗 編譯單元名必須以 .java 或者某個已注冊的類似於 Java 的擴展名結尾,請問這是咋回事
這個可能是你用文本編輯的時候,默認了擴展名。你把文件夾選項里的那個隱藏已知文件類型的擴展名,點工具-文件夾選項-查看-勾上隱藏已知文件類型的擴展名。這樣以後,再重新編輯保存。
⑷ JAVA問題:什麼叫做一個編譯單元
當一個c或cpp文件在編譯時,預處理器首先遞歸包含頭文件,
形成一個含有所有
必要信息的單個源文件,這個源文件就是一個編譯單元。
這個編譯單元會被編譯成為一個與cpp
文件名同名的目標文件
。
連接程序把不同編譯單元中產生的符號聯系起來,構成一個可執行程序。
⑸ c語言編程(函數和預編譯單元習題)
均值、方差、最大值與最小值、順序查找、排序,這幾個功能模塊用switch實現,功能模塊可以通過編寫相應的函數調用實現。
⑹ 編譯單元的介紹
當一個c或cpp文件在編譯時,預處理器首先遞歸包含頭文件,形成一個含有所有必要信息的單個源文件,這個源文件就是一個編譯單元。
⑺ 在C/C++中,什麼叫編譯單元
可以這樣的理解:
編譯單元
當一個c或cpp文件在編譯時,預處理器首先遞歸包含頭文件,
形成一個含有所有 必要信息的單個源文件,這個源文件就是一個編譯單元。
這個編譯單元會被編譯成為一個與cpp 文件名同名的目標文件 。
連接程序把不同編譯單元中產生的符號聯系起來,構成一個可執行程序。
⑻ 在java中,什麼是編譯單元。如何根據編譯單元創建類庫,又如何使用這個類庫。
豬哥解答:
c領域倒是有編譯單元的說法,java 中沒有聽說。
類庫嗎,功能類集合,就是一組類放一起來實現某個功能。不要太去追概念性的東西,什麼白貓黑貓,能抓老鼠才是好貓。
類庫舉例:人、購物車、超市、商品,人去超市購買商品,道具是購物車,那我要准備幾個類
人.java,購物車.java,超市.java,商品.java,這幾個類通過人這個擁有各種動作行為(方法)的類聯繫到一起,實現了人推車在超市中買商品的購物動作。
那麼我這也就是一個類庫,多個類集中到一起,為了實現人購買商品這個功能。
⑼ java中一個編譯單元只能有一個公共類寫兩個怎末不報錯呢
會報錯的。
如圖: