2012-04-19 83 views
0
struct MyStruct { 
    int x; 
}; 

MyStruct theVar; 

theVar.x = 10; 

int main() { 
    return 0; 
} 

爲什麼編譯器給我的錯誤:G ++「沒有指定類型」

error: ‘theVar’ does not name a type

回答

5

您只能創建變量,並在全球範圍之外初始化它們main。您不能像這樣在全局範圍內分配變量。

你有兩個選擇:

初始化它在創建時間:

MyStruct theVar = {10}; 

或者

指定它main

theVar.x = 10; 

請注意,第一種方法更好,因爲它只有一個步驟,初始化,第二個有兩個步驟初始化作業

1

你不能在功能外做這樣的任務。將其移動到主內部,或將其初始化:

MyStruct theVar = {10};