我正在研究一个个人项目的编译器,为此,我查看了英国一所大学的一些论文。我偶然发现的一个问题是这样的:
Draw a CFG which contains a definition followed by a use of a variable x, but in
which the use of x is not dominated by any definitions of x.这怎麽可能?如果使用不受定义的支配,这意味着使用x的块是否会有x超出作用域?我是不是看错了?
假设我们有
1: int y= 2;
2:如果(y > 0)
3: int x= 5;
4: else x++;
在这种情况下,x的使用不受定义的支配,但是x不在作用域中,所以不能使用它。我不明白..。
发布于 2013-10-13 09:29:11
请记住,x的定义和它的声明是两个不同的东西,作用域只关心声明。请考虑以下几点:
int x;
if (user_input_integer() == 0) {
x = 0;
} else {
x = 1;
}
x++;https://stackoverflow.com/questions/18550392
复制相似问题