编译器生成的汇编语句执行顺序为什么与C代码顺序不同

如题所述

你知道“C代码”执行顺序?C源码文件只有书写顺序,而且书写顺序与形成可执行文件的顺序本来就不是完全同的。随便举个例子,如for(i=0;i<N;i++){printf("%d ",i);printf("%d ",i+3);}中的i++在哪里执行?它可不是在i<N后就执行,而是在两个printf后的}处才执行,想与}分开都不可能!再如,在main前自定义一个函数,在main中调用这个函数时,流程又跑到哪里去了?是不是应该理解为从后面跑到前面去执行了?……所以,谈论C代码的执行顺序基本是一个伪命题!
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网