对一个结构体变量赋值为{0},这个变量里面的所以结构体成员的值均= 0 吗,该如何处理

对一个结构体变量赋值为{0},这个变量里面的所以结构体成员的值均= 0 吗
有结构体
typedef struct LsAfccDataWriteReqTag 
{
  TaskId taskId; 
  Int32 dataID;  
  Int32 offset;  
  Int8 oprt;  
  union LSAFCC_Data data;  
}
LsAfccDataWriteReq;
定义变量
LsAfccDataWriteReq req = {0};

这样req的各个变量的值=0吗

------解决方案--------------------
相当于
memset(&req, 0, sizeof(LsAfccDataWriteReq));
------解决方案--------------------
是的 
对数组也是可以这样初始化为0

------解决方案--------------------
如果a是全局的或者静态的编译器就默认初始化为0, 如果局部的(栈上分配)则为随机值。

另外,

typedef struct LsAfccDataWriteReqTag

TaskId taskId;
Int32 dataID;
Int32 offset;
Int8 oprt;
union LSAFCC_Data data;

LsAfccDataWriteReq; 

如果在栈上分配这个结构并且只初始化第一个字段,如:
main()
{
...

LsAfccDataWriteReq req = {1}; 

...
}
,那么req剩下的字段默认初始化为0(不是随机值!)



------解决方案--------------------
这些变量的默认值有没有和编译器相关 
====================================
和编译器无关
语言本身的规定