구조체 초기화 방법

Struct initializing

C 구조체 초기화

다음 C 구조체 초기화 방법 중 문법에 위배되는 것은? (단, C99 기준)

struct MyStruct
{
    int a;
    int b;
};

// method 1
struct MyStruct m1 = {0, 1};

// method 2
struct MyStruct m2;
m2 = (struct MyStruct){0, 1};

// method 3
struct
{
    int a;
    int b;
} m3 = {0, 1};

// method 4
struct MyStruct2
{
    int a;
    int b;
} m4;
m4 = (struct MyStruct2){0, 1};

// method 5
struct
{
    int a;
    int b;
} m5;
m5 = (struct {
          int a;
          int b;
      }){0, 1};

// method 6
struct MyStruct m6;
m6 = (struct {
          int a;
          int b;
      }){0, 1};

Go 구조체 초기화

다음 Go 구조체 초기화 방법 중 문법에 위배되는 것은?

type MyStruct struct {
    a int
    b int
}

// method 1
var m1 MyStruct = {0, 1}

// method 2
var m2 = MyStruct{0, 1}

// method 3
var m3 struct {
    a int
    b int
} = {0, 1}

// method 4
var m4 = struct {
    a int
    b int
}{0, 1}

// method 5
var m5 struct {
    a int
    b int
} = struct {
    a int
    b int
}{0, 1}

// method 6
var m6 MyStruct = struct {
    a int
    b int
}{0, 1}