找回密码
 欢迎注册
查看: 20412|回复: 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-11-22 12:11 , Processed in 0.027423 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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