2010-10-22 102 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';