1. C語言同一段代碼,同樣的文件,編譯器為什麼運行結果不一樣
有如下幾種可能:
1 代碼運行的平台硬體不同。
不同的CPU,如嵌入式CPU,intel CPU,以及IBM的CPU,在硬體最底層就是不同的,而C語言是一門和底層相關性極大的語言,在不同的硬體上運行出不同結果是很正常的。
2 代碼運行的系統不同。
相同CPU在不同操作系統上跑相同代碼時,一樣會出現不同的結果。這是由於系統底層的實現不同造成的。比如Linux和Windows,在底層處理上就有一定的差異。
3 編譯器不同,同時代碼中使用了C規范未定義規則的語句。
C語言規范並沒有對C語言的所有行為做定義,所以相同語句,不同編譯器的運行效果可能有所不同。比如同樣的sizeof(int),在16位編譯器上結果為2,而32位編譯器上就會是4。
4 代碼獲取到的外部數據不同。
比如運行代碼時獲取到的其它輸入不同,包括程序中獲取的環境變數,實時信息,以及各種外部輸入等,均有可能出現不同。
比如在做隨機數時,如果以當前時間設定隨機數種子,由於每次的時間是不同的,同一個程序每次運行的結果都是不同的。
python是解釋語言,c++是編程語言。
1、編譯器是off-line,解釋器是on-line。編譯器把整個程序讀進來,進行一系列變大變小轉化優化的過程,產生可執行文件,然後編譯器退出,由可執行文件來讀取和輸出數據,python main.py這個命令會啟動python虛擬機和解釋器,將main.py的代碼一行一行解釋,只不過不同於REPL,它不會把每一行表達式的值列印出來。
2、Python是一種解釋執行的語言,Python的縮進要求十分嚴格,通過縮進來區別代碼塊,C++是一種需要編譯執行的語言,通過大括弧來區分代碼塊。C++的工作方式是,首先將寫好的代碼保存到擴展名為.cpp的文件中,然後編譯.cpp文件。編譯器將C++代碼轉換為原生代碼。然後執行這些機器代碼。因此,C++非常靠近硬體。
、C++和Python都是從C語言演變出來的面向對象的編程語言,將相關數據和操作數據的方法打包成一個類,不同的類相互隔離,也可以自由組合,類是一組數據以及操這組數據的函數(方法)的集合。類是對象的抽象模板,對象是類的具體實例,給類的數據取不同的值,同一個類就產成了不同的對象。
3. 綜合來說,幾大主流C++編譯器(icc,gcc,clang,vc++等)究竟孰優孰劣
我曾編出各種C++ 11編譯器的支持,並有C++ 14編譯器支持一批。
對VC編譯的速度不斷提高,內存佔用已經從VC12開始明顯提高,而最明顯的是可變參數模板。還有內置的代碼靜態分析,在實際中很有用。32位保護模式下,ss寄存器存的是一個段選擇子,選擇子是一個數字,通過IDT(局部描述符表)或者GDT(全局描述符表)選擇一個段描述符,描述符裡面的信息包含該段的取值范圍和大小。
vc14的靜態分析不在每次載入一個ie(對,以前每分析一個.cpp,就載入一次ie!),速度快了相當多。
4. C語言控制單片機的詳細原理是怎樣的
C語言源程序----->C編譯器----->匯編代碼----->匯編器----->機器代碼
所謂的單片機C語言的意思是拿C語言來編寫單片機程序,沒有什麼C語言控制單片機這回說法。具體過程是:C語言源程序通過特定的C編譯器編譯為針對某種單片機的匯編代碼,再由匯編器將匯編代碼匯編為單片機可執行的機器代碼,然後下載到單片機的存儲器運行。當前一般的集成開發環境(如Keil C)可以一次搞定生成機器代碼。
需要補充一點的是,單片機也是一種計算機,不要以為只有在PC機上才可以用C語言編程,C語言可以用作為任何計算機的編程語言,當然包括單片機,但有一個條件就是,你必需要有針對某種架構的計算機的C編譯器。目前來講,C語言的編譯器種類非常多,有用於各種單片機以及微處理器架構的編譯器版本,所以可以用C來做為單片機的編程語言。不同的是,你用TC或者VC編譯得到的是X86(如Intel,AMD)的目標代碼,只能在PC機上運行,而如果用單片機C編譯器(比如Keil C)編譯的代碼是單片機代碼,只能在特定的單片機上運行。目前C/C++是最流行的單片機/微處理器編程語言。
5. MDK編譯器怎麼樣
KEIL MDK是基於的Cortex-Arm微控制器的最全面的軟體開發解決方案。
它包括IDE,C / C ++編譯器,調試器,軟體包管理和CMSIS。MDK5版軟體包添加新的運行時環境(RTE)來管理設備的支持和軟體組件。
超過3000款Arm?的Cortex?-M微控制器的解決方案;
支持32位Arm Cortex-A和Cortex-A/ Cortex-M的基礎設備;
Software Packs包括現成可使用的CMSIS和中間件組件;
億道電子是國內最全面的開發工具提供商, 致力於將全球最先進的軟體產品引薦給國內研發型企業使用
6. VC++6.0官方版怎麼樣
一、VC++6.0就是微軟公司出品的一款開發C++的IDE。所謂IDE就是:為了方便程序員開發,集成了代碼編輯器、編譯器、鏈接器、調試器等工具的集成開發環境。
二、現在外面企業已經很少有使用VC++6.0的了,畢竟已經是將近17年前的「古董」了,而且自Windows 7以後的Windows系統對VC++6.0的支持已經比較差了,好像在Windows 10上直接就不能用了。
三、題主如果要在Windows下學習C++,建議可以使用Visual Studio 2013或更高版本(因為VS2013及更高版本對C++11的新特性支持比較完善);如果嫌VS系列的IDE太大,也可以使用Codeblocks或者Dev C++(Codeblocks需要自己單獨下載安裝並配置編譯器,Dev C++安裝使用會比較方便一些)。