當前位置:首頁 » 編程軟體 » 編譯器代碼量對比

編譯器代碼量對比

發布時間: 2022-07-05 02:12:51

A. 主流C51單片機編譯器比對

int short 的大小是因機器而異嘛(准確點應該是編譯器)。你都說了人家規定的是「最小」為16位,又不是只能是16位,也沒有說兩者應該相等(事實上是short不超過int就OK啦)。所以當然可以short類型為半個機器字長,而int類型則為一個機器字長的啦。

「C++標准規定了每個算術類型的最小存儲空間,但他並不自知編譯器使用更大的存儲空間 」

說簡單點就是C++規定了個最小的值,但是將你的代碼編譯成機器碼的編譯器則確定了你這個長度值為多少。因為C++是一種語言,一個規范,或者說只是一種規定,然後要將你按這種規范寫的代碼編譯成能在機器上運行的代碼的是編譯器。而在不同的機器上運行的程序的實際結構是不一樣的,比如單片機與PC相差就很大。要將按相同規范寫的程序在各種各樣亂七八糟的機器上運行,就需要相應的編譯器了。所以實際的大小是由你編譯代碼的編譯器確定的。

PS:當然當前一般的PC上int都是32位,short16位的。因為現在32位的機子是主流嘛。如果你不寫什麼單片機的程序可以不用太在意這個問題。但是寫單片機程序時就要注意了,因為一般一個單片機的編譯器可以編譯很多種型號晶元的代碼,而這些型號有可能從8位到32位都有……

B. 如何通過STVD編譯器看自己的代碼量

1. 將附件壓縮包中的mapinfo.exe解壓並解壓到stvd的\安裝路徑\STMicroelectronics\st_toolset\stvd中

2. 用stvd打開你的工程文件,在工程上點右鍵選settings...

3. 右側的選項卡選擇Linker,將category的下拉框選成output,然後在Generate Map file前打勾

4. 再將選項卡上選擇到Post-Build,在下方文本框中新粘貼一行內容 mapinfo $(OutputPath)$(TargetSName).map

5. 點OK按鍵確定,菜單File->save workspace,保存工程

6. 重新編譯下,你就能看到flash,ram,eeprom佔用位元組數了

C. delphi編譯器效率高到底是指什麼

所謂delphi編譯器效率高,一般指的是以下三方面:

1、編譯連接時間短,這一點是其他任何編譯器都無法相比的(一般來說,VC, VB編譯過程所用的時間是Delphi的幾倍),原因很簡單:Pascal語法限制嚴格,用戶必須規范地編碼,省去了編譯器的很多麻煩。

2、編譯出的程序執行速度快,產生的代碼長度短。這一點比VB強,但和VC基本一樣,誰也沒有優勢。不過很多人有誤解,以為Delphi類庫龐大復雜,加一個控制項就要把整個一個源文件全部加進來,代碼長度太大,效率太差。其實真實情況是,擁有眾多VCL控制項類庫,是Delphi的一個獨特之處,VC的MFC庫無法與之相比——MFC有的底層簡單封裝的類,VCL庫都有,但VCL有的上層組件,MFC卻根本沒有。使用VCL上層應用控制項後,代碼長度的確比VC大,不過VC卻沒有這方面的選擇,而VC所用的從底層一磚一瓦地編碼的方式,Delphi完全支持,而且絕對沒任何劣勢,代碼長度也不長(VC的語法復雜,按C程序員一般習慣做的話,代碼長的反而會是VC)。產生誤解的原因,是多數Delphi程序員是應用級的,而VC程序員是底層些的,應用程序員大多不太懂得底層代碼的編寫,只會搬控制項、響應事件,以為底層的東西Delphi做不來。

3、對應用級的程序開發周期短——這也就是Borland一貫吹捧的「快速開發工具」的含義。正因為VCL的存在(封裝了很多界面組件以及通訊、資料庫、internet應用等很多後台功能),對高層應用不再需要一磚一瓦地受累,使開發周期縮短了很多倍。

單純從技術角度說,編譯器效率應該指編譯出的代碼是否短小/運行速度是否快,以及是否能用較少的源代碼高效地實現復雜功能。前一方面Delphi並不比VC差,而比VB強,但並非一騎絕塵;後一方面則的確有一騎絕塵之象。

Delphi的致命缺點,其實不是技術——技術它是領先的,毫無疑問,問題是市場策略和公司實力(Borland只是家小公司),微軟「攜操作系統以令諸侯」,誤導了眾多軟體開發公司,讓它們以為微軟的才正宗和好用,造成了事實上的VB,VC用戶群遠比Borland的龐大,源代碼數量也一樣是C/C++遠遠占優,而Borland的C++ Builder卻開發得太晚難以形成市場優勢。

概括來說,如果你要開發上層應用為主的程序,特別是資料庫方面的程序,那麼Delphi能讓你省不少時間;而若開發底層些的軟體,為能有更多相關代碼可以參考利用,為能容易地招聘到更合適的程序員,以及為了代碼維護方便,都適合用C/C++去做,當然,C++ Builder從技術上說是個不錯的選擇,只是用戶群還太小。

D. 同樣一個程序 用什麼編程語言代碼量最小

其實現在越高級的語言,代碼量都很小(如c#等)
假如你只要在32位控制台上運行,那麼像腳本語言是你的不二選擇(如perl,Python等)

E. 用keil for arm帶的編譯器編譯出來的程序文件和arm gun gcc相比,代碼質量(密度和效率)有什麼差別

keil優化質量高,優化後flash消耗比GCC要少。由於優化質量高,運行起來也要更快一些。

F. c++編程方式編寫的程序源代碼,為什麼編譯後的代碼量較大,運行的速度略低

c語言是國際上廣泛流行的、很有發展前途的計算機高級語言。它適合作為系統描述語言,即可用來編寫系統軟體,也可用來編寫應用軟體。正如樓上的說是一個經典。
一般情況下,c++編程方式編寫的程序源代碼量小,但編譯後的代碼量較大,運行的速度略低,不過開發時的工作量和工作難度較小;而c編程方式編寫的源代碼量較大,但可執行的效率高.如果一些對速度要求高,尤其是對硬體操作較多的程序,大多數還是用c編程方式開發的(用C又比用匯編簡單,易於實現).另外,學Win32 C程序設計還有助於更深入地了解Windows 的內幕和Win32 API。
C語言是比較接近機器語言,它又比匯編語言更容易理解和掌握,也是比較底層的語言,正由於這些它的運行速度很快,比java,C++,VB等有更高的效率.C尤其在通信方面的作用很大,比如你想進騰訊,華為等這樣大的,在通訊信息方面的公司,學C無疑是最好的,當然不是說JAVA,C++不如C好,應該各有各的長處,總之學C語言是不會過時的。當然在其他方面的 應用也很強。

G. 超贊,編譯器和解釋器的異同,瞬間明白了

編譯器和解釋器的最大不同就是:以 WINDOWS 系統為例進行講解就是:編譯器是可以把用戶編寫的源程序(例如:C 語言源程序)經過編譯、鏈接產生成一個在 WINDOWS 系統下面可獨立運行的二進制代碼(以 *.exe 為後綴的);而解釋器則必須在高級語言的解釋環境中才能夠運行用戶編寫的源程序,一旦退出了解釋器,那麼用戶編寫的源程序將無法執行。例如:以前的 BASIC 語言就是解釋執行、而不是編譯執行的。即:在 BASIC 解釋環境中,可以執行用戶編寫的以 *.BAS 為後綴的源程序,但是一旦退出了 BASIC 解釋器,那麼用戶編寫的 *.BAS 源程序就無法執行了。

H. 同樣需要編譯器為什麼匯編語言比較快

絕大多數情況下,並不是。

事實上除了對CPU工作模式極端熟悉的人,一般人是很難用匯編寫出更高效的代碼的。
編譯器雖然智商比不了人,但是它更精通優化。生成高效的代碼需要透徹地掌握硬體的工作模式,每個細節都要考慮清楚。而且這很大程度上是軟體更擅長但人並不擅長的繁重無腦又要求極高精確性的機械化工作。

當然專業搞優化的人還是能打敗編譯器的,因為編譯器能做到的人終究還是可以做到。而人要比編譯器聰明得多。編譯器只能遵循一些規定好的模式進行優化,人可以創造編譯器根本不知道的優化方法。某些邏輯靠編譯器是沒辦法生成出來的,只能由人直接用匯編寫。匯編語言雖然也要編譯,但是一般會和機器指令直接對應,相當於要求CPU在細節上嚴格按人的思路工作,而高級語言並不能控制太多細節。

I. 但編譯完不見少,還有可能會更大呢。

你要說什麼問題?
我理解的:你是要問為什麼源文件很小,編譯完了反而比源文件還大,是這個意思嗎?
因為編譯器在編譯程序的時候,不僅僅編譯你所書寫的代碼,他還要將一些庫文件鏈接到你的程序里,這些部分是為啟動和適應系統用的,所以當你的程序代碼量很小時,反而執行文件會比較大。

J. c與c++的比較

有一些吧,但是要看什麼情況了,如果要是都是一些小程序,其實沒有多大的差別,但是如果你加入類,虛函數等c++中的特性之後,那編譯運行速度肯定就慢了,這也是沒辦法的事,因為c++是面向對象的語言,不過效率不會影響太多,差不多就是因為c++兼容c,所以用c++的編譯器編譯也可以編譯c語言,你要追求效率,那就用匯編唄,c++主要是用來寫大型程序,如果用c寫大型程序,能把人累死,而且代碼量很大,同樣用c++寫,就能減少很多代碼,這樣運行起來效率其實差不了多少,c++大約是c的%90,而java則是c++的%50,c++和c都是很優秀的,其實真正的差別在於Coder的水平。就像作者的水平之差一樣。c/c++都很優秀,認真學一下吧。不要在語言比較方面花費太多的口水。誰在乎劍聖用什麼劍?

熱點內容
光遇安卓怎麼能加到ios 發布:2025-02-11 10:20:16 瀏覽:690
優勢存儲 發布:2025-02-11 10:20:14 瀏覽:362
光貓wifi怎麼改密碼 發布:2025-02-11 10:17:51 瀏覽:167
web和伺服器怎麼寫通訊 發布:2025-02-11 10:08:06 瀏覽:979
安卓升級後手機變卡怎麼辦 發布:2025-02-11 09:58:01 瀏覽:113
土工資料庫 發布:2025-02-11 09:48:55 瀏覽:963
libxml2編譯 發布:2025-02-11 09:48:45 瀏覽:745
java類的復制 發布:2025-02-11 09:48:45 瀏覽:601
127小時ftp 發布:2025-02-11 09:47:10 瀏覽:852
安卓怎麼看蘋果手機的行駛軌跡 發布:2025-02-11 09:26:19 瀏覽:885