『壹』 什麼是編譯什麼是運行
就說C語言吧,編譯是把
xxx.c
的源代碼轉換成可執行的xxx.exe的過程。然後就可以直接運行了,xxx.c是沒有辦法直接運行的。
『貳』 編譯和運行有何區別>>>>>>>>>>>>>
編譯也就是計算機將你編寫的程序,編譯(也就是翻譯)成計算機可以識別的語言,而運行,就是說要執行你所編寫的這個程序,實現一定的功能,通常我們電腦上的軟體打開都可以叫做運行
『叄』 java運行時類型和編譯時類型都是什麼意思
運行時類型是 程序運行過程中再判斷是什麼類型,
編譯時類型是 在寫好代碼後,編譯時已經確定是什麼類型了
『肆』 編譯時和運行時對象分別是什麼數據類型
編譯時被當做NSString 的實例來處理,運行時其isa指向的是[NSData Class],故運行時該實例只能收到NSData的固有實例方法(或者自己寫的Category),如果對該實例發送諸如 testObject stringByAppendingString:@"哈哈哈" ,編譯時不會報錯只會給出黃色警告,但是運行時會直接崩潰,錯誤信息可能是
-[_NSZeroData stringByAppendingString:]: unrecognized selector sent to instance 0x8946440
故可以看出NSData 在運行時的真實類型是_NSZeroData(這里用的NSData alloc init,這里是個空的NSData,所以是ZeroData,不是說所有的)
如果對該實例發送諸如 testObject
::這類消息 編譯器會直接給出紅色錯誤,無法運行,但其實這個實例是有這個方法的。
這里如果改為 id testObject=[[NSData alloc]init];
那麼發送NSString 的方法仍然會崩潰,發送NSData的實例方法則完全正常。並且兩種情況編譯器都不會再給出警告或錯誤。
『伍』 編譯運行編譯運行,有什麼區別
編譯:
包括編譯和鏈接兩個過程。
編譯部分,是把源文件(代碼)轉換成機器可以識別的二進制語言,這個過程是針對每一個源文件的。
鏈接,是把編譯生成的二進制文件,組合成為一個系統可以執行的可執行文件。
這兩部分整體也叫編譯。也就是說,廣義的編譯,就是把代碼,轉換成可執行文件。
運行:
把編譯出來的可執行文件,在系統中運行的過程,稱為程序的運行。
打個比方,編譯就是做飯的過程,而運行,就是吃飯。二者是完全不同的概念,是計算機軟體開發的兩個步驟。
『陸』 C++中什麼是編譯時,什麼是運行時,二者有何區別
編譯階段主要進行語法的檢查,無誤。將程序代碼轉換成目標代碼(二進製表示,打開看不懂),沒有和操作系統進行連接,不能運行。完成連接後,程序能夠進入系統運行。
運行時,一定是編譯過的,沒有語法錯誤。編譯時,沒有生成目標文件,可能有語法錯誤。
『柒』 java中甚麼是運行時類型 甚麼是編譯時類型2者有甚麼區分和聯系
有1種情況是編譯父類型,運行子類型,需要使用子類型的方法時,要強迫轉型
『捌』 c語言中的編輯,編譯,連接,運行分別是什麼意思
1、編輯:編寫代碼,製作C語言的源文件。
2、編譯:是由編譯程序將C語言源文件轉換成二進制中間文件,對文件內部的語法語義做處理,如果編譯出錯,無法進行後續動作。
3、鏈接:將編譯中生成的中間文件組合成二進制可執知行文件,這一步會對文件之間的關聯做檢查,如果出錯,將不會生成可執行文件,也就無法執行。
4、執行:運行可執行文件,這一步道是編寫代碼的最終目的。
(8)什麼是運行類型編譯類型擴展閱讀:
DOS命令通常分為三類:內部命令、外部命令和批處理命令。
1、內部命令:
其包含在命令解釋程序COMMAND.COM中,一旦啟動DOS,這些命令就被調入內存,只要在DOS系統提示符下輸入這些命令,就可立即執行。
2、外部命令:
其以文件的形式存儲在系統盤上,所帶擴展名為COM和EXE。DOS啟動時,它們並沒有被調入內存,執行前必須從系統盤讀進內存。因此輸入外部命令時,要了解該命令是否在當前盤上,不然DOS無法找到它們。
3、批處理命令:
實際上是個文件,該文件包含多條命令,當用戶鍵入批處理文件名時,DOS將順序執行其中的各條命令。注意,批處理命令必須用「.BAT」作為擴展名。
C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單。
當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則就會顯得十分重要。
網路-運行命令
網路-C語言
『玖』 java編譯時類型和運行時類型該如何理解
編譯期只會檢查實例聲明的類型和強制轉化的類型是否存在extend/implement關系,因為從聲明變數類型,到強制轉化變數的類型之間可能存在編譯期無法解析的代碼,雖然示例中只是一個簡單的賦值,肉眼就可以判斷實際類型,但是對於編譯器來說是無法判斷的,舉個簡單的例子:
public static void foo(boolean flag) {
Useful xx = flag ? new Useful() : new MoreUseful();
((MoreUseful)xx).g(); // 編譯器如何判斷此處是否有錯誤?
// flag=false的時候可以正常運行,就不能說這里有編譯期錯誤}public static void main(String[] args) {
foo(true);
foo(false);
}
『拾』 關於JAVA多態的編譯時類型與執行時類型的一個問題.
多態的對象,在編譯器為sub分配內存空間的時候執行的父類的屬性,
運行期,也就是調用方法的時候,指定是子類的行為
這是因為,對象的屬性是在聲明時指定,方法數據對象的行為