float x = 10;
float d = x/100;
float a = 0;
答案 0 :(得分:4)
在C中,可以仅使用常量初始化全局变量。因此,行
float d = x/100;
不正确。
您可以使用预处理器宏来实现目标。
#define CONSTANT 10.0
float x = CONSTANT;
float d = CONSTANT/100;
float a = 0;
答案 1 :(得分:3)
函数外部的初始化函数必须是常量,不允许使用x/100
,因为在单元转换(编译)的这个阶段中x可能是未定义的。
作为一种解决方法,您可以使用符号用于两个声明:
#define Value 10.0
float x = Value;
float d = Value/100;
float a = 0;
无论如何,您可以在C99-C11标准的函数中使用此代码:
void foo(void)
{
float x = 10; //Here works
float d = x/100;
float a = 0;
...
}
P.S。我在同一时间写了与Sahu相同的答案。无论如何,我会指出第一部分解释的原因。