找回密码
 欢迎注册
查看: 14946|回复: 11

[提问] 嵌套数据结构访问效率是否会下降?

[复制链接]
发表于 2009-2-3 15:12:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
将一个嵌套的数据结构顺序展开成单层的数据结构,
编译器编译后可有哪些变化?比如:

1、sizeof 是否可能发生变化?
2、访问效率是否发生变化?(嵌套的可能需要更多的点运算符(.))
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-2-3 15:44:41 | 显示全部楼层


直接翻译为
   base + offset形式的地址
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-2-3 17:56:10 | 显示全部楼层
sizeof可能会发生变化,除此之外影响很小。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-2-3 18:32:46 | 显示全部楼层
同意2楼的观点
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-2-3 20:46:15 | 显示全部楼层
谢谢大家!

我特别关心的是多个连续点运算符访问效率是否会下降:
比如:A.B.x <<= 1 与 AB.x <<=1 是否同等效率?
(其中结构体 AB 是 嵌套结构体A(成员中含有结构体B) 直接展开的)

另,sizeof 何时才会发生变化?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-2-3 20:52:26 | 显示全部楼层
结构就是为了方便写程序
有没有对机器和编译后程序没有任何影响
只有对程序的可读性等主管感受产生影响
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-2-3 20:58:57 | 显示全部楼层
如果连续多个“.”运算效率等同于单个的话,
我将会把大的数据结构进行分层处理,
这样便于代码编写及阅读。
正如楼上所述。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-2-3 21:07:32 | 显示全部楼层
呵呵

   但是过于庞大的结构,会严重影响程序的可读性
   我想,三层是极限吧
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-2-3 21:35:28 | 显示全部楼层
我曾接触的代码有数据结构嵌套数据结构的,
并且嵌套层数非常多,
这些又是ARM端的代码,
很难debug,代码也很难读(函数指针漫天飞的)。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-2-3 22:29:53 | 显示全部楼层
那是嵌入程序
最讲究代码小而快
和PC不同的开发理念
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-6-2 06:00 , Processed in 0.052424 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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