關於巨集定義函式

2021-06-27 09:48:03 字數 403 閱讀 5629

擷取部分內容:

使用帶引數的巨集定義可完成函式呼叫的功能,又能減少

系統開銷,提高執行效率。正如c語言中所講,函式的使用可以使程式更加模組化,便於組織,而且可重複利用,但在發生函式呼叫時,需要保留呼叫函式的現場,以便子 函式執行結束後能返回繼續執行,同樣在子函式執行完後要恢復呼叫函式的現場,這都需要一定的時間,如果子函式執行的操作比較多,這種轉換時間開銷可以忽 略,但如果子函式完成的功能比較少,甚至於只完成一點操作,如乙個乘法語句的操作,則這部分轉換開銷就相對較大了,但使用帶引數的巨集定義就不會出現這個問 題,因為它是在預處理階段即進行了巨集展開,在執行時不需要轉換,即在當地執行。巨集定義可完成簡單的操作,但複雜的操作還是要由函式呼叫來完成,而且巨集定義所占用的目標**空間相對較大。所以在使用時要依據具體情況來決定是否使用巨集定義。

關於巨集定義

一 巨集替換 1.巨集展開的順序 先由外層向內層檢查,直至最內層後依次向外層展開。例外 遇到 開頭的巨集就不再往內檢查,從該層開始往外展開。2.重新掃瞄和替換 在替換列表中的所有引數替換過之後,預處理器將對結果token序列重新掃瞄以便對其中的巨集再次替換。當正在替換的巨集在其替換列表中發現自身時,...

關於巨集定義

發現release版本是沒有上面的這些巨集定義,所以準備去unity的playersettings去設定看看,我加了乙個ttt的巨集定義,發現結果還是這樣,如圖下 發現了debug模式下是有這些亂七八糟的巨集定義的,但是release模型下是沒有的,怎麼辦呢?我準備修改這個檔案試試把debug有的巨...

關於自定義函式和巨集定義

一 static 此定義型別有以下3種情況 1 當修飾乙個全域性變數時,這個變數的作用域被改變了,只能在當前檔案中呼叫 2 當修飾乙個區域性變數時,改變了變數的生命週期,直到程式結束才會被釋放。注 一般的呼叫函式中定義的區域性變數預設儲存在棧空間,而如果是被static修飾的區域性變數儲存在資料段內...