A. C語言工作原理
作為一種編程語言,本身是談不上工作原理的,實際上C語言所有的語法,正是C語言編譯器的工作原理或者工作機制的具體實現。要細致的討論起來是不可能,但是作為C語言程序員,必須了解這個大致的流程。一個程序,從C語言源碼,到系統可執行的文件,一般經歷四個過程。
1、預處理階斷,這個階斷是文本處理階斷,有預處理器來完成,會將源碼中的帶"#"開頭的預處理命令進行相應的處理,在Linux上C語言的預處理器程序是cp命令。
2、編譯階斷,這個階斷是有C語言編譯階斷,在Linux上C語言的編譯器是cc命令,它將C語言源碼轉換成匯編指令。
3、匯編階斷,這個階斷是匯編編譯階斷,在Linux上C語言的匯編器是as命令,這個階斷會將匯編指令編譯成二進制機器碼。
4、鏈接階斷,這個階斷是會將匯編階斷生成的機器碼目標文件,裝載成一個系統可執行的文件,在Linux平台以ELF格式進行組裝,在Windows平台上以PE格式進行組裝。在Linux平台上的鏈接器命令為ld,在windows平台上的鏈接器命令為linker。
B. 關於as3發布anroid apk文件發布的問題,如何把air打包進去,減
air在android上的架構,真的體驗非常不好。如果air能鋪開裝機量,相信寫as3 apk能火起來。在裝機量低迷的前提下,或者說,在air推廣效果不佳的前提下,真心希望adobe能效仿在ios平台的做法,取消runtime,直接把as3編譯成native。其實,對比開發流程,as3的優勢是很突出的。
C. as3程序員到底是什麼
ActionScript,通常簡稱為AS,是Flash平台的100語言。作為程序,可以編譯成SWF、SWC。SWF就是我們所說的Flash動畫。但是現在SWF不僅僅是一個動畫,而是RIA的一個載體。ActionScript有三個版本:1.0(AS1)、2.0(AS2)和3.0(AS3)。
只有FlashPlayer9及以上支持as3編譯的SWF。這三個版本非常不同,現在最新的版本是AS3。所以as3程序員做的是flash開發,而不是flash設計。
(3)as3編譯成機器碼擴展閱讀:
命名技巧
最好使用與所有者和相關項對應的包名。按照慣例,包名應該以反向url名開頭。
例如:如果ExampleCorp(examplecorp.com)編寫了一些ActionScript3.0類,所有這些類都將放在com中。examplecorp包(或com.examplecorp的子包)。
這樣,如果英國有另一個ExampleCorp(ExampleCorp.co.UK),它也編寫了一些ActionScript3.0類,您可以通過簡單地使用包UK.co.ExampleCorp來確保唯一性。
當類是特定應用程序的一部分時,應該將它們放在特定於應用程序的子包中例如:ExampleCorp可能有一個名為WidgetStore的應用程序。
如果WidgetStore應用程序使用一個名為ApplicationManager的類,那麼這個類應該在com.examplecorp中。或者在該包的子包中。
通常,包名以小寫字母開頭。
[隱式獲取方法(getter)和設置方法(setter)]
public函數getcount():uint{
Return_count;
}
Publicfunctionsetcount(值:uint):uint{
If(值< 100){
_count=價值;
其他}{
ThrowError();
}
}
D. C++中什麼是編譯時,什麼是運行時,二者有何區別
編譯階段主要進行語法的檢查,無誤。將程序代碼轉換成目標代碼(二進製表示,打開看不懂),沒有和操作系統進行連接,不能運行。完成連接後,程序能夠進入系統運行。
運行時,一定是編譯過的,沒有語法錯誤。編譯時,沒有生成目標文件,可能有語法錯誤。
E. 怎麼把 匯編代碼 轉成 機器碼
將這些代碼寫入一個.asm文件,加上必要的程序框架,用匯編程序匯編處理一下就可以得到你要的機器代碼了。
因為你列出的這些代碼是32位的指令,匯編程臘握尺序中要加上.386偽指令
以你列出的這三條指輪高令為例,你可以這樣寫一個程序:
.386
.code
.startup
mov eax, 0040100FH
jmp eax
add edx, 4
end
用TASM匯編程序匯編,在命令行里加上 /l 選項,匯編後查皮昌閱生成的.lst文件,可以得到這三條指令的十六進制的機器代碼為:
B8 0040100F (按位元組拆開是 B8 0F 10 40 00)
FF E0
83 C2 04