2013-08-31 24 views
1

我正在研究個人項目的編譯器,並且正在研究我在英國一所大學的一些論文。我偶然發現的其中一個問題如下:控制流圖占主導地位

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:整數X = 5;

4:else x ++;

在這種情況下,x的使用不受定義支配,但x不在範圍內,因此不能使用。我不明白...

回答

0

請記住,x及其聲明的定義是兩個不同的東西,範圍只關心聲明。考慮以下內容:

int x; 
if (user_input_integer() == 0) { 
    x = 0; 
} else { 
    x = 1; 
} 
x++;