带有演员的C初始化器,这有危险吗?

时间:2012-07-15 18:06:10

标签: c

请考虑以下事项:

struct Foo 
{
  char c;
  int i;
};


void Bar(void)
{
  struct Foo f = {0}; // use zero initializer

  // do some stuff

  f = (struct Foo) {'h', 1}; // copy different data into f, is this dangerous?
}

以上演员会被视为危险吗?这是好风格吗?

1 个答案:

答案 0 :(得分:9)

这不是风格问题;没有(struct Foo)的代码将无法编译。它不是演员表,它是C99功能语法的一部分,称为复合文字