在线中文-在线在线ccc66-在线永久免费观看的毛片-在线永久免费观看的a站视频-久久精品最新免费国产成人-久久精品综合一区二区三区

以文本方式查看主題

-  曙海教育集團論壇  (http://www.bgl88.cn/bbs/index.asp)
--  Symbian開發  (http://www.bgl88.cn/bbs/list.asp?boardid=46)
----  文本數據及二進制數據的描述符介紹  (http://www.bgl88.cn/bbs/dispbbs.asp?boardid=46&id=2050)

--  作者:wangxinxin
--  發布時間:2010-12-3 14:07:05
--  文本數據及二進制數據的描述符介紹

文本數據及二進制數據的描述符介紹


Symbian OS: 文本數據及二進制數據的描述符介紹| 5
1. 簡介
描述符(Descriptors )是Symbian OS 的基本組成部分,它提供了對字符串進行操作的一些
規則,同時也用作二進制數據的容器(containers )。描述符在許多函數原型中使用,因
此,理解如何有效地使用描述符是非常重要的。
本文討論了各種描述符,范圍從基本知識到高級功能。讀者至少應該熟悉一些基本的
Symbian OS 概念;可以參閱《Symbian 開發伙伴庫》[SYM70]中的《基本編程規范》一
節。
第二章幫助讀者理解使用傳統C 字符串和Symbian 描述符時遇到的一些內存問題。第三章
通過類型的層次結構、各類型的特點、字符串操作方法、字符轉換,以及一些調試問題等對
各種描述符進行了簡要解釋。第四章給出了一些與描述符有關的APIs。第五章講述了如何用
描述符替換各種C 字符串,以便讓熟悉C 語言的程序員們能快速找到相應的規則。
版本1.0 | 2004 年5 月28 日

Symbian OS: 文本數據及二進制數據的描述符介紹| 6
2. 變量聲明與內存
在本章中,程序員們可以了解到字符串聲明與內存的關系(此信息一般也適用于變量聲
明)。各種資源受限的手持設備其內存問題和資源管理問題至關重要。理解Symbian OS 編
程的一些基本原則對于設計出具有良好性能的軟件及其重要。
2.1 節講述了邏輯內存區。2.2 節討論了C 字符串聲明的修正,其目的是將讀者引導到
Symbian 字符串聲明及其與內存之間的關系等課題。
許多有關內存的問題可參閱《針對移動電話的Symbian OS C++ 》[SOSC]一書。還可參閱
《Symbian 開發伙伴庫》[SYM70]一文;讀者可以閱讀有關進程、線程,以及內存管理等方
面的課題。
2.1 變量與內存
聲明變量時,會在內存中的某個地方保留其內部數據機構。根據這種聲明的具體情況,數據
被儲存到下列內存類型之一:
. 二進制程序。編譯器對各個源程序進行編譯,而連接器將他們連接起來。其結果
就被稱為二進制程序。當聲明靜態變量和常變量時,其數據被包括在變量中并成
為二進制程序的一部分。必須在程序代碼中對這類變量進行初始化。因為它們都
是常量,在程序運行過程中并不能改動這些數據,所以也將它們作為該二進制程
序的一部分傳遞。
既可以直接從ROM 運行程序,也可以將其加載到只讀RAM 中,并從那里運
行。這兩種內存中的變量都受到保護,不會被某些不適當的代碼所修改。這就是
諸如文字這類常量靜態數據被儲存在二進制程序中的原因。
為二進制程序所聲明的變量都存在于該程序的整個生命周期之中。它們不需要程
序員進行任何內存管理;當程序結束時,為該二進制程序所分配的RAM 被操作
系統所釋放。而如果是ROM,就不必為二進制程序作任何事情。
. 全局數據。如果某個變量被聲明成靜態的,但并不是常量,它就被認為是全局數
據。在Symbian OS 中,只有可執行的.exe 才具有全局數據。如果為.dll 聲
明了全局數據,那么當針對ARM 平臺編譯時,編譯過程就會報錯停止。
當.exe 被作為一個進程而啟動并具有全局數據時,會為全局數據保留一個自己
的內存區域。由于使用全局數據通常并非好設計,而且由于許多應用都是.dll
可執行程序,對全局數據的使用不在本文中講解。
. 棧。Symbian OS 中的每個線程都有其自己的棧。自動化變量被分配到該棧中。
當調用某個方法時,其參數也被分配到這個棧中。因為棧尺寸很有限(對于
Symbian OS 更是如此),只有一小部分的數據可以被分配到這個棧中。在函數
調用中,必須使用對象的指針或引用,以降低將這些對象副本分配到棧中的需
求。
由于規定了棧中變量的生命周期,所以當該程序塊結束時,該程序塊中全部已被
聲明的自動化變量都會被自動刪除。如果該變量是一個類,它有一個析構函數,
那么在將該對象移出棧之前就會先調用這個析構函數。
. 堆。Symbian OS 中的每個線程都有一個堆。這是一個內存區域,其中放置所有
被動態分配的對象。用對象C++ 的關鍵字new 將各個對象分配到這個堆中


主站蜘蛛池模板: 国产黄色片在线观看 | 五月综合激情视频在线观看 | 亚洲一成人毛片 | 日韩亚洲欧美视频 | 亚洲精品成人网 | 99热精品在线观看 | 五月激情丁香 | 久久99精品久久只有精品 | 亚洲区精品久久一区二区三区 | 在线国产不卡 | 国内自拍中文字幕 | 亚洲电影免费观看 | 亚洲免费在线观看 | 男人的天堂午夜 | 久久国产精品久久国产片 | 久久久久久久蜜桃 | 黑人一区 | 欧美亚洲一区二区三区在线 | 羞羞影院免费观看网址在线 | 欧美亚洲国产精品久久高清 | 欧美综合精品一区二区三区 | 在线观看日韩欧美 | 亚洲大香伊人蕉在人依线 | 亚洲一区二区精品视频 | 亚洲国产人成中文幕一级二级 | 久久精品大全 | 久久久精品波多野结衣电影 | 麻豆画精品传媒2021直接看 | 亚洲美女视频一区 | 羞羞网站在线播放 | 中文字幕综合久久久久 | 中日文字幕视频 | 五月婷婷在线观看 | 中文视频在线观看 | 欧美日韩影院 | 综合在线视频 | 亚洲欧洲在线观看 | 最近免费中文完整视频观看 | 男女羞羞的视频网站在线观看 | 精品久久一区二区三区 | 欧美成人精品一区二三区在线观看 |