Objective-C是否逐行运行代码?

时间:2014-08-22 22:05:41

标签: objective-c cocoa

我是编程Objective-C和编程的新手,所以如果这是一个非常明显的问题,请原谅我:

我想知道Objective-C是否逐行运行代码。我的意思是,如果它在移动到另一条线之前处理一条线,或者它只是运行下一条线而不管前一条线是否完成。

例如,

int difference = number1 - number2;
if (difference < 0) {
    difference = difference + 10;
}
result = difference;

number1 = 3number2 = 7。当我运行这段代码时,它会一行一行地运行并在第5行之前运行if块并给我result = 6,或者它会同时开始运行if块和第5行并给我{{1 }}?

提前致谢!

编辑:由于Obj-C怪癖,将模数更改为加法。

2 个答案:

答案 0 :(得分:7)

就你的想法而言,你可以假设它是逐行运行的。

事实上,编译器可能会将代码置于更有效的顺序中(即确保分区不会太靠近,因为这可能会使事情变得缓慢)。但是,即使编译器重新排序,也可以确保在需要之前计算结果。当您以完全优化的方式(发布模式)构建代码时,如果您对其进行调试,您可以看到代码实际上已经重新排序(调试器会在您不希望的情况下跳转)。但是,只要考虑你的代码就可以安全地假设它按你编写的顺序运行它。

答案 1 :(得分:0)

如果您不熟悉编程,那么您在学习之初就会遇到的所有编程语言都会按顺序执行语句。这意味着下一个只在前一个结束后才会发生。但是,像Objective C这样的语言不是面向行的,重要的不是行而是语句,比如以分号结尾的赋值!或者如果声明。