我将通过使用我想出的以下示例来说明我心中的疑问。
考虑下面编写的 C++ 代码:
#include<iostream.h>
void main()
{
cout<<"LULZ \n";
cout<<"\n Enter anything\n";
int a;
cin>>a;
goto noexistence;
}
现在,我的问题是,如果这段代码被编译然后在不同的情况下被解释,最终用户的输出会有什么不同?当我们编译它时,它会给出一个编译时错误并且会抱怨不存在这样的标签(noexistence)。
但是当这段代码被解释时会发生什么呢?我不知道是否有 C/C++ 的解释器(我从 CERN 听说过 CINT ROOT,但我不知道如何操作它)但从理论上讲,解释如何在标签不存在的情况下捕捉到这种谬误定义?
我问这个问题是因为我在解释中读过很多次,“代码是逐行执行的”。我永远无法理解“逐行”的概念。任何人都可以对此有所了解,因为这个问题现在正在吞噬我,呵呵。