2010-10-22 333 views
4

我想,用來初始化C中的結構和陣列++的一些元素。陣列和struct初始化在C++

在C語言中,你可以這樣做:

unsigned char array[30] = {[1] = 4, [20] = 4}; 
struct mystruct 
{ int i; 
    int j; 
} 
struct mystruct e = {.j = 2}; 

但我不能做在C++。有什麼方法可以實現這種指定的初始值設定項嗎?

+4

這是C99,一般不是C ... – 2010-10-22 11:07:10

+0

@Oli:雖然這是11年前。將是不錯不必指定...:/ – GManNickG 2010-10-22 11:25:53

+1

@GMan:這可能是11年前,但仍然有很多的平臺,真的不支持C99(嵌入式泉記)。如果有人對我說「C」,我認爲他們是所有方言的共同標準。因人而異... – 2010-10-22 11:39:03

回答

1

C++結構有構造函數(就像class),所以你總是可以初始化你的var他們。

+0

這是來自一個C的lib我不能編譯一個結構:(但我想上 – jlanza 2010-10-25 07:46:51

0

它總是好的初始化數組或結構中的所有元素,以避免許多錯誤。

下面可以幫助你。

的初始化結構

struct myStruct 

{ 

    int i; 

    int j; 

    myStruct() 
    { 
     j=10; //default Constructor  
    } 

}; 

初始化數組:

unsigned char array[5]; 

array[0]='A'; 

array[2]='C';