我想了解C++中的存儲類說明符。我有兩個例子。在C++中給定的相同範圍內聲明相同的變量名稱
這裏,在給定的相同範圍內,聲明相同的變量名稱。
情況1:
#include <iostream>
static int i;
extern int i;
int main() {
std::cout<<i<<std::endl;
return 0;
}
輸出:
0
情況2:
#include <iostream>
extern int i;
static int i;
int main() {
std::cout<<i<<std::endl;
return 0;
}
獲得一個錯誤:
prog.cpp:4:12: error: 'i' was declared 'extern' and later 'static' [-fpermissive]
static int i;
^
prog.cpp:3:12: note: previous declaration of 'i'
extern int i;
爲什麼第一個案件工作正常,而第二個案件給出錯誤?
看起來更像是C++ - 你確定你有正確的標籤嗎? –