C ++和C非成员多个结构初始化

时间:2016-03-08 09:50:01

标签: c++

如何使用相同的数据初始化两个或更多结构?这必须在编译时完成,作为非成员全局变量的const结构的默认数据。

编辑: 那C呢呢?

3 个答案:

答案 0 :(得分:3)

适合我:

// header
struct Foo {
        int a;
        int b;                            
};
extern Foo const x;
extern Foo const y;

// cpp file
Foo const x{2, 3};
Foo const y = x;

编辑:稍微重新解释一下这个问题。

答案 1 :(得分:0)

一种方法是:

#define DATA { bla,bla,bla,bla }

var a = DATA;
var b = DATA;

答案 2 :(得分:0)

您可以使用复制构造函数初始化结构。 (这需要使用辅助函数来确保正确的初始化顺序。)如果结构是POD,这应该与常规编译时初始化一样有效:

struct A {
  int a;
  double c;
};

A initial_data() {
  return { 1, 2.0 };
}

A a = initial_data();
A b = initial_data();