【发布时间】:2018-01-27 13:38:43
【问题描述】:
我想返回一个数组,既然被覆盖没关系,我的方法是这样的:
double * kryds(double linje_1[], double linje_2[]){
double x = linje_1[1]*linje_2[2]-linje_1[2]*linje_2[1];
double y = linje_1[2]*linje_2[0]-linje_1[0]*linje_2[2];
double z = linje_1[0]*linje_2[1]-linje_1[1]*linje_2[0];
static double svar[] = {x, y, z};
return svar;
}
但是,static double svar[] = {x, y, z}; 出现错误。有人可以解释一下这是什么意思吗?我已经阅读过其他论坛帖子,例如 this one,但这并不真正适用于我的情况
【问题讨论】:
-
你的初始化元素不是常量表达式。
-
static对象的初始值设定项必须是 常量表达式,表示可以在编译时求值的东西(文字、扩展为文字的宏、或仅包含这些元素的表达式)。x、y和z的值直到运行时才建立,因此它们不能用作static数组的初始化器。
标签: c initialization