我有说那个什么塞德威克凭空想象了么?
凭空想像我是说有人认为每次FOR循环都要计算一次长度,实际却不是。这是不是凭空想象呢?
怎么一下子就给我扣了顶大帽子 变成我说那个什么塞德威克凭空想象了?
再“烂”的代码,也不能凭空想象它的执行过程吧。
而且这种写法好读易懂,随便看看好多大型软件的源码,都有类似写法。没见过还
要再搞2个局部变量出来去赋值的。c里的这几个函数,你就算每个都这样搞,也问题不大,可是以后真正编码做软件的时候,该怎么样还要怎么样。说某段代码 烂不烂, 也是需要上下文环境的。
另外楼上对内联函数理解也不对吧,循环结构的判断条件里有函数,有被当成内联函数去优化的吧?
就算是说内联函数,c99也早就支持内联函数了,而且比c++更灵活。
循环结构只是个简单的比较跳转而已,即使是FOR,也仅仅多个步长,循环体内会尽可能的被优化,可以提取到循环体外的部分,都会提到外面去优化,判断条件也是,可以一次性计算得到固定值的,就不会多次重复计算,这是编译器的工作,不需要特别指定。
两个值去比较 然后根据结果跳转,一个值不断的自增或自减,另一个值则早在一开始就计算出结果保存在堆栈内,并不需要每次计算。很简单的一个问题 搞这么复杂。。。
况且楼主只是问两种方式哪种比较好些。
最后想说的是,从语言学习的角度,版主的引导方向及2楼写法都是完全正确的。
但是从实际使用上来讲,应该接受各种流行的写法和风格。
6楼和9楼的想象是有问题的。当然,这样想象对学习和使用无任何影响。
也很少有人去学习更底层的知识。。。
这样的问题,OD下一目了然。
哎 打字累坏了。俺再也不来这里乱逛了,打字太累太累