struct的初始化

2021-06-20 07:21:27 字數 711 閱讀 2092

在android的底層裝置定義中,會出現很多這樣的

結構體初始化專案:

/*裝置檔案操作方法表*/

static

struct

file_operations hello_fops = ;  

這就是指定初始化在linux裝置驅動程式,它源自iso c99標準。

這種方式的優勢就在於由此初始化不必嚴格按照定義時的順序。

已知乙個結構,定義如下

struct book ;

c99支援結構的指定初始化專案,其語法與陣列的指定初始化專案近似。只是,結構的指定初始化專案使用點運算子和成員名(而不是方括號和索引值)來標識具體的元素。例如,只初始化book結構的成員value,可以這樣做:

struct book surprise = ;

可以按照任意的順序使用指定初始化專案:

struct book gift = ;

正像陣列一樣,跟在乙個指定初始化專案之後的常規初始化專案為跟在指定成員後的成員提供了初始值。另外,對特定成員的最後一次賦值是它實際獲得的值。例如,考慮下列宣告:

struct book gift = ;

這將把值0.25賦給成員value,因為它在結構宣告中緊跟在author成員之後。新的值0.25代替了早先的賦值18.90。

有關designated initializer的進一步資訊可以參考c99標準的6.7.8節ininialization。

struct結構體初始化

參考 初始化方式 第1 種 定義時初始化 方式一 點操作符 struct a a1 方式二 struct a a1 方式三 struct a a1 核心喜歡用方式一,使用方式二和方式三時,成員初始化順序可變,使用方式三時初始化順序不可變。第2 種 在c 中,結構體與類在使用上已沒有本質上的區別了,所...

結構體struct的初始化

在c語言中,對結構體的初始化,可以有一下三種。struct test int main struct test t2 struct test t3 printf t1.a d,t1.b d n t1.a,t1.b printf t2.a d,t2.b d n t2.a,t2.b printf t3....

c語言 struct 的初始化

struct資料有3中初始化方法 順序,c風格及c 風格的亂序。1 順序 這種方法很常見,在一般的介紹c的書中都有介紹。順序初始化的特點是 按照成員定義的順序,從前到後逐個初始化 允許只初始化部分成員 在被初始化的成員之前,不能有未初始化的成員。eg struct user oneuser 2 亂序...