1. 程式人生 > >[C語言]結構體初始化的不同方法

[C語言]結構體初始化的不同方法

first c99 truct 需要 sample str 錯位 c-c 順序

結構體的定義

struct Test{
    int first;
    double second;
}Sample;

方法一 定義時直接賦值

Sample s(1, 1.00);

缺點:必須匹配變量順序,不能錯位

方法二 先定義,後賦值

Sample s;
s.second = 1.00;
s.first = 1;

不需要關心順序

方法三 定義時亂序賦值(C風格)

C99標準,gcc支持,vs不支持。
必須加. VB也有類似用法
相當於1+2

Sample s{
    .second = 1.00;
    .first  = 1;
}

方法四 定義時亂序賦值(C++, C#風格)

可以用在c語言代碼中,只是更常用在c++代碼中
gcc支持這種編譯,vs不支持

Sample s{
    second : 1.00;
    first : 1;
}

[C語言]結構體初始化的不同方法