gxqcn 发表于 2009-2-3 15:12:54

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

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

1、sizeof 是否可能发生变化?
2、访问效率是否发生变化?(嵌套的可能需要更多的点运算符(.))

无心人 发表于 2009-2-3 15:44:41



直接翻译为
   base + offset形式的地址

mathe 发表于 2009-2-3 17:56:10

sizeof可能会发生变化,除此之外影响很小。

liangbch 发表于 2009-2-3 18:32:46

同意2楼的观点

gxqcn 发表于 2009-2-3 20:46:15

谢谢大家!

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

另,sizeof 何时才会发生变化?:Q:

无心人 发表于 2009-2-3 20:52:26

结构就是为了方便写程序
有没有对机器和编译后程序没有任何影响
只有对程序的可读性等主管感受产生影响

gxqcn 发表于 2009-2-3 20:58:57

如果连续多个“.”运算效率等同于单个的话,
我将会把大的数据结构进行分层处理,
这样便于代码编写及阅读。
正如楼上所述。

无心人 发表于 2009-2-3 21:07:32

呵呵

   但是过于庞大的结构,会严重影响程序的可读性
   我想,三层是极限吧

gxqcn 发表于 2009-2-3 21:35:28

我曾接触的代码有数据结构嵌套数据结构的,
并且嵌套层数非常多,
这些又是ARM端的代码,
很难debug,代码也很难读(函数指针漫天飞的)。

无心人 发表于 2009-2-3 22:29:53

那是嵌入程序
最讲究代码小而快
和PC不同的开发理念
页: [1] 2
查看完整版本: 嵌套数据结构访问效率是否会下降?