symbian notes

symbian c++ note
1. TTextX 相當於 char
2. T類沒有析構函數,可以再棧上也可以在堆上創建
3. C類必須建在堆上
4. User::Leave() 或 User::LeaveIfError()調用與c++的throw 很相似, TRAP宏從作用上看就是try和catch的組合
5. 構造函數和析構函數不能有異常發生
6.trap跟trapd的區別在於,trapd會聲明一個用來保存異常錯誤碼的變量,而trap必須由自己主動去聲明
7. 如果對象在trap宏中被壓入清除棧,並且沒有發生異常退出,那麼他們在推出trap宏之前必須被彈出,否則就會發生系統錯誤。這是因爲清除棧保存了銷燬對象的嵌套層次,每一層限制在一個trap中,並且當裏面的代碼返回時清除棧必須爲空。
8.CleanupStack::PushL()對於c類會調用析構函數,而對於非c類則只是簡單的釋放指針指向的內存區域,如果要對非c類也調用類似於析構函數的函數,比如說release,close函數,則要使用cleanupstack的其他push函數。
10. TPtrC 相當於 const char* TPtr相當於char*
11._L會創建TPtrC類型的臨時變量,所以在內聯函數中會造成一定的開銷,如果只是希望把字符常量當成null爲終結符的字符串使用,_S是很有用的,並且這樣做不回造成任何開銷。


symbian os
內存分配:
1、Chunk(塊)
chunk 是一組線性相鄰的內存地址在RAM 中的映射。進程創建以後,它的地址空間包括1到3個chunk:
(1)stack/heap chunk:這裏包括了進程的主線程所要使用的stack 和 heap。所以這個chunk 通常是進程所必須的。
(2)code chunk:這個chunk 只有當進程被加載到RAM時纔出現。
(3)data chunk:只有當進程擁有靜態數據的時候纔會有這個chunk。
當然,程序可以還創建額外的chunk。 一個全局的chunk可以被其他進程訪問,這樣就實現了大量內存的共享。RChunk 類提供了對chunk的支持。TFindChunk 類可以用來查找其他進程創建的全局chunk。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章