编译器错误编译原理——动态语义错误与静态语义错误
动态语义错误:逻辑上的错误,⽐如死循环等,编译器在编译的时候并未发现,但逻辑上这是个错误;
静态语义错误: 可被编译器发现的语法错误,⽐如 (5+6();这种在编译器编译的时候就会被发现的语法错误;
#include<iostream>
using namespace std;
int main() {
int k = 0;
for(; k<=100; );
{
k++;
}
}
上述代码中,for 循环后⾯有个;号,所以这个for循环是死循环,存在语义错误,在编译的时候是不会报错的,所以是动态语义错误。在C/C++中,直接写{ }⽤于产⽣独⽴的作⽤域,编译可以通过,符合词法、语法、静态语义。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论