編譯和執行

2021-07-06 11:32:58 字數 588 閱讀 9455

對於語句nsstring* testobject = [[nsdata alloc]init];testobject 在編譯時和執行時分別是什麼型別的物件?

首先,宣告

nsstring *testobject是告訴編譯器,testobject是乙個指向某個objective-c物件的指標。因為不管指向的是什麼型別的物件,乙個指標所佔的記憶體空間都是固定的,所以這裡宣告成任何型別的物件,最終生成的可執行**都是沒有區別的。這裡限定了nsstring只不過是告訴編譯器,請把testobject當做乙個nsstring來檢查,如果後面呼叫了非nsstring的方法,會產生警告。

接著,你建立了乙個nsdata物件,然後把這個物件所在的記憶體位址儲存在testobject裡。那麼執行時,testobject指向的記憶體空間就是乙個nsdata物件。你可以把testobject當做乙個nsdata物件來用。

lua編譯和執行

lua dofile 用於執行lua 塊.但實際上loadfile才做了核心的工作.loadfile會從乙個檔案中載入lua 塊,但它不會執行 只是編譯 然後將編譯結果作為乙個函式返回。function dofile filename local f assert loadfile filename...

解釋執行和編譯執行的區別?

閱讀目錄 一 編譯器 二 機器碼 三 目標程式 四 net中的clr是什麼?五 解釋執行和編譯執行的區別?一 編譯器 編譯器是一種特殊的程式,它可以把以特定程式語言寫成的程式變為機器可以執行的機器碼。我們把乙個程式寫好,這時我們利用的環境是文字編輯器,這時我們把程式稱為源程式,在此以後程式設計師可以...

qt工程編譯和執行

1.刪掉 debug generatedfiles release win32 x64和檔案.user sln vcxproj filters 2.只保留 h cpp qrc 沒有這個檔案編譯出來的qt專案會顯示不了 ui檔案和resources目錄 3.pro檔案檔案目的是為了實現跨平台,內容都是...