【问题标题】:Array and struct initialize in C++C++中的数组和结构初始化
【发布时间】:2010-10-22 11:04:37
【问题描述】:

我想在 C++ 中初始化结构和数组的一些元素。

在 C 中你可以这样做:

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

但我不能在 C++ 中做到这一点。有没有办法实现这种指定的初始化器?

【问题讨论】:

  • 这是 C99,不是一般的 C...
  • @Oli:虽然那是 11 年前的事了。最好不必指定...:/
  • @GMan:可能是 11 年前,但仍然有很多平台并不真正支持 C99(想到嵌入式弹簧)。如果有人对我说“C”,我认为他们的意思是所有方言的共同点。 YMMV...

标签: c++ arrays struct


【解决方案1】:

C++ 结构中有构造函数(就像class),所以你总是可以在其中初始化你的变量。

【讨论】:

  • 这是一个来自我无法编译的 C 库的结构 :( 但我在考虑这个
【解决方案2】:

初始化数组或结构中的所有元素以避免许多错误总是好的。

以下内容可能对您有所帮助。

结构初始化

struct myStruct

{

   int i;

   int j;

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

};

数组初始化:

unsigned char array[5];

array[0]='A';

array[2]='C';

【讨论】:

    猜你喜欢
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多