1
我聽說過當前範圍中無法訪問的活動變量的概念。這三個例子我能想到的把我的頭頂部有:在當前範圍中無法訪問的變量C
ptr = malloc(size * sizeof(ptr_type); ptr = different_ptr;
,調用函數而不再在範圍內的靜態變量,或
不在範圍內的文件中的全局變量,它不是外部變量。
我對此有兩個問題。我理解這個概念嗎?如果我這樣做,標準C中還有其他的例子嗎?
我聽說過當前範圍中無法訪問的活動變量的概念。這三個例子我能想到的把我的頭頂部有:在當前範圍中無法訪問的變量C
ptr = malloc(size * sizeof(ptr_type); ptr = different_ptr;
,
調用函數而不再在範圍內的靜態變量,或
不在範圍內的文件中的全局變量,它不是外部變量。
我對此有兩個問題。我理解這個概念嗎?如果我這樣做,標準C中還有其他的例子嗎?
是的,你似乎準確地理解了這個概念。
嵌套範圍:
void pointless(int x)
{
int y = x;
if (y > 0)
{
int x = y + 1; // This x means the argument is out of scope (hidden)
if (x > 10)
{
int y = x - 10; // This y hides the previous y
printf("%d %d\n", x, y);
}
}
}
這不是很好的代碼,但有時代碼生成少做一些毫無意義的東西,但使用嵌套變量聲明有點類似。
我想你可以在所有程序中添加一個調用你的:) – paulsm4 2013-02-28 05:43:25
以上堆棧變量我不知道第一個真正重要的,因爲'ptr'還是它只是指向別處的變量。那裏無法訪問的內容實際上只是內存位置,沒有變量代表它。 – 2013-02-28 05:46:29
不在範圍內的文件? – perreal 2013-02-28 06:02:16