找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3157|回复: 3

请教ACE_CDR的问题

[复制链接]
发表于 2007-12-24 23:32:24 | 显示全部楼层 |阅读模式
请问一下ACE_CDR::MAX_ALIGNMENT到底是干嘛用的??
 楼主| 发表于 2007-12-24 23:32:33 | 显示全部楼层
最多的对齐字节数,32位计算机上为4
 楼主| 发表于 2007-12-24 23:32:48 | 显示全部楼层
你给的连接我已经看过了,但是没有解决我说的问题。

我发现的问题是:

在logging_client.cpp的14行有这么一句:ACE_OutputCDR header(ACE_CDR::MAX_ALIGNMENT + 8);

1.可以很明显的看出enum MAX_ALIGNMENT= 8的;

2.跟踪进入CDR_Stream.cpp,可以看到构造过程中有一行是:

  :  start_ ((size ? size : (size_t) ACE_CDR::DEFAULT_BUFSIZE) + ACE_CDR::MAX_ALIGNMENT,

可以看到,这里又加了一个ACE_CDR::MAX_ALIGNMENT

我现在存在的问题是:

1.为什么要加两次ACE_CDR::MAX_ALIGNMENT?

2.ACE_CDR::MAX_ALIGNMENT到底加了有什么用?
 楼主| 发表于 2007-12-24 23:32:58 | 显示全部楼层
由于字节对齐会浪费一些空间,加ACE_CDR::MAX_ALIGNMENT是为了预留空间。个人认为不需要加两次,ACE_OutputCDR header(8);足够了
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-20 05:49 , Processed in 0.320078 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表