C:如何舍入全局变量?

时间:2015-06-01 14:24:09

标签: c compiler-errors global-variables rounding compile-time

我有代码

#include <stdio.h>
#include <math.h>

double x = round(3.2/2.0);

int main()
{
    printf("%f", x);
}

当我尝试编译时,我得到错误初始化元素不是编译时常量。如果没有round,它就可以毫不费力地编译。

我希望将x作为全局变量进行舍入。这可能吗?

2 个答案:

答案 0 :(得分:3)

在C语言中,具有静态存储持续时间的对象只能使用整数常量表达式进行初始化。不允许在整数常量表达式中调用任何函数。

您必须找到一种通过积分常量表达式生成值的方法。像这样的东西可能会起作用

double x = (int) (3.2 / 2.0 + 0.5);

答案 1 :(得分:2)

您无法在全局范围内调用函数,请尝试

#include <math.h>

double x;
int main(void) 
 {
    x = round(3.2 / 2.0);
    return 0;
 }