簡體   English   中英

C中全局結構Init的錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM