关于TBool的问题,为什么要使用TBool

dove01 2007-11-06 06:28:01
Symbian的基础是C++,C++中的布尔型用bool,用1个字节
为什么在内存紧缺的Symbian开发时,一般使用TBool呢
TBool是4字节的Int型,占用内存比较大,我是这么认为的
...全文
368 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Juncof 2007-11-07
  • 打赏
  • 举报
回复
Although only a single bit would theoretically be necessary to represent a Boolean, a machine word is used instead, so that these quantities can be easily passed. Also, TBool must map onto int because of C++’s interpretation of operands in conditional expressions.

On implementations of Symbian OS in which the compiler supports the ANSI-recommended bool type, TBool will be typedef’ed to bool instead of int.

这是sdk 帮助的描述
dyw 2007-11-07
  • 打赏
  • 举报
回复
...
anel 2007-11-07
  • 打赏
  • 举报
回复
速度是以真机上测试为准.
反编译的软件我也有一些,它们反编译出来的结果往往不一
dyw 2007-11-07
  • 打赏
  • 举报
回复
to anel:
你说实机上反汇编出来的代码是否真实?
anel 2007-11-07
  • 打赏
  • 举报
回复
to dyw:
速度是否一样,你在真机上做过测试吗,反编译出来的就一定真实了吗,就像UE显示的文件就是真实吗?
anel 2007-11-07
  • 打赏
  • 举报
回复
to dyw:
速度是否一样,你在真机上做过测试吗,反编译出来的就一定真实了吗,就像UE显示的文件就是真实吗?
dyw 2007-11-07
  • 打赏
  • 举报
回复
to anel:
1、自动对齐不假,但与TBool有何区别?
2、速度也一样?是否看过它们的反汇编代码?反汇编代码一样吗?
mickeyfirst 2007-11-07
  • 打赏
  • 举报
回复
bool类型是99年引入的。

在sdk中不是有一些关于TBool的解释吗?

btw:在内核中都被map到bool
anel 2007-11-07
  • 打赏
  • 举报
回复
你用bool一点问题没有,它自动对齐,速度一样,另还有int等效TInt.
但id和TUid不等效.
dyw 2007-11-07
  • 打赏
  • 举报
回复
anel 2007-11-07
  • 打赏
  • 举报
回复
struct M
{
bool iFlag;
TInt32 iInteger;
bool iFlag2;
};
sizeof(M)==12
建议用TBool
dyw 2007-11-07
  • 打赏
  • 举报
回复
举个例子:

struct M
{
bool iFlag; // offset 0, 1 byte
bool iFlag2; // offset 1, 1 byte
TInt32 iInteger; // offset 4, 4 bytes
};

这个结构的大小sizeof(M)是6还是8?答案是8。编译器会在iInteger前补两个空字节。
anel 2007-11-07
  • 打赏
  • 举报
回复
typedef int TBool
dove01 2007-11-07
  • 打赏
  • 举报
回复
to xujunfeng000
SDK没有描述很详细,也没有回答我的问题

to anel & dyw
反编译什么的不要讨论那么深
而且现在遇到的也不是速度问题
是heap size问题
虽然heap size可以调节
但是项目要求不可以再做增加

to dyw
1、历史的原因,bool类型是后来才引入的;
2、习惯的力量,都是T型变量;
3、字节对齐问题;
这三点我很赞同,能不能稍微介绍一下字节问题
dyw 2007-11-06
  • 打赏
  • 举报
回复
bool比int在速度上也要快些,但是有几个方面的原因:
1、历史的原因,bool类型是后来才引入的;
2、习惯的力量,都是T型变量;
3、字节对齐问题;
其实,有限的几个bool或TBool对内存的影响并不显著。
当影响显著时,可以按bit来操作,这样更节约内存。
实际应用时,可以在自己的c/c++后台应用中使用bool,
而UI相关部分还是推荐使用TBool。

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧