嵌套数据结构访问效率是否会下降?
将一个嵌套的数据结构顺序展开成单层的数据结构,编译器编译后可有哪些变化?比如:
1、sizeof 是否可能发生变化?
2、访问效率是否发生变化?(嵌套的可能需要更多的点运算符(.)) 不
直接翻译为
base + offset形式的地址 sizeof可能会发生变化,除此之外影响很小。 同意2楼的观点 谢谢大家!
我特别关心的是多个连续点运算符访问效率是否会下降:
比如:A.B.x <<= 1 与 AB.x <<=1 是否同等效率?
(其中结构体 AB 是 嵌套结构体A(成员中含有结构体B) 直接展开的)
另,sizeof 何时才会发生变化?:Q: 结构就是为了方便写程序
有没有对机器和编译后程序没有任何影响
只有对程序的可读性等主管感受产生影响 如果连续多个“.”运算效率等同于单个的话,
我将会把大的数据结构进行分层处理,
这样便于代码编写及阅读。
正如楼上所述。 呵呵
但是过于庞大的结构,会严重影响程序的可读性
我想,三层是极限吧 我曾接触的代码有数据结构嵌套数据结构的,
并且嵌套层数非常多,
这些又是ARM端的代码,
很难debug,代码也很难读(函数指针漫天飞的)。 那是嵌入程序
最讲究代码小而快
和PC不同的开发理念
页:
[1]
2