+ -
当前位置:首页 → 问答吧 → 编译simplescalar的错误,

编译simplescalar的错误,

时间:2011-07-08

来源:互联网

C/C++ code

int
vasprint(result, format, args)
char **result;
const char *format;
va_list args;

{
  const char *p = format;
  int total_width = strlen(format) + 1;
 va_list ap = args;              //<----此处报错,说invalid initializer
}



感觉没错误啊?本来这个程序可以在gcc2.7下编译通过,为什么在gcc4.5却编译不通过,gcc不向下兼容啊?

作者: benben2301   发布时间: 2011-07-08

va_copy(ap, args);

作者: justkk   发布时间: 2011-07-08

引用 1 楼 justkk 的回复:

va_copy(ap, args);


确实解决了问题,我是新手,想问下为什么会这样,是版本问题?

作者: benben2301   发布时间: 2011-07-08

应该是与编译器版本有关
对于va_list,不能直接赋值,需要va_copy

作者: justkk   发布时间: 2011-07-08