在typedef中定义结构中的变量是否合适(C编程)

Mat*_*ose 3 c struct initialization

typedef struct
{
    int id = 0;
    char *name = NULL;
    char *department = NULL;
    int phone = 0;
} emp;
Run Code Online (Sandbox Code Playgroud)

在C编程中,做这样的事情是一个很好的编程习惯,或者,当我声明变量'emp'时,我应该初始化.

我正在使用GCC编译器,上面的代码确实编译.我想知道它是否是正确的初始化方式.

Gra*_*ral 6

随着typedef struct { ... } emp;您正在创建一个名为"emp"的新复杂类型.当您声明类型为"emp"的变量时,通常会将其初始化.

我会选择:

typedef struct
{
  int id;
  char *name;
  char *department;
  int phone;
} emp;

emp myVar = { 
  /* id */ 0, 
  /* name */ NULL, 
  /* department */, NULL, 
  /* phone */ 0 
};
Run Code Online (Sandbox Code Playgroud)