C99:用(+0 -0.0i)初始化_complex变量的正确方法
||
在C99中用
(+0 -0.0i)
(在实数中为正零,在imag中为负零)静态初始化float _complex
变量的正确方法是什么?
float _Complex a = _Complex_I * (-0.0); // this seems doesn\'t work
int main()
{
printf(\"a = (%f %f) \\t(0x%016llx)\\n\",crealf(a),cimagf(a), *((long long*)&a));
}
PS。我需要静态初始化,因此无法使用
__real__ a = 0.0; __imag__ a = 0.0;
没有找到相关结果
已邀请:
1 个回复
禽兢玫坞劲
宏的原因。 由于我相信您正在使用GCC,因此您可能有兴趣关注此错误。特别是,如果您不介意生活在不断发展的边缘,则可以执行以下操作:
(有关更多详细信息,请参见有关4月28日Jason Merrill提交的讨论)。我不确定,但您可能还需要提交一个单独的错误,以请求C前端对此功能的支持。