[英]Errors on global struct Init in C
在我的一個文件中,我嘗試以這種方式初始化全局結構:
MyGlobalStruct InstanceOfMyGlobalStruct;
InstanceOfMyGlobalStruct.SomeVariable = False; <<Errors>>
並得到一堆錯誤:
該聲明沒有存儲類或說明符。
該聲明與上一行不兼容
預期為“;”
當我在函數中執行此操作時:
void InitMyGlobalStruct()
{
InstanceOfMyGlobalStruct.SomeVariable = False;
}
我沒有錯誤,為什么呢?
編輯:與:有何不同?
uint a = 5;
全局線不會給我任何錯誤...
您可以在全局范圍內(在任何函數之外)聲明變量,但必須將不是聲明的語句放入函數主體中。
這是一個純粹的聲明:
InstanceOfMyGlobalStruct.SomeVariable = False;
這就是C的設計方式。
如果要在全局范圍內初始化結構,可以編寫:
MyGlobalStruct InstanceOfMyGlobalStruct = { .SomeVariable = False };
(如喬納森所說)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.