我想把log10(2)
的结果赋给一个常数。
我做的
const float f = log10(2);
它告诉我们。我还定义了一个新函数
const float Log10(float f) {
return (const float)log10(f);
}
但是编译器在抱怨(为什么不呢我也在使用
Initializer element is not a constant expression
函数)这是否意味着没有函数可以返回常数?那我该怎么做?编辑:
正如有些人所怀疑的,我包含了
log10
头文件并将其与Type qualifiers are ignored on function's return type
链接,但是我在gcc中使用了math.h
选项,它不接受它。 最佳答案
这样就行了
#include <stdio.h>
#include <math.h>
int main() {
const float f = log10(2);
printf("%f\n", f);
}
但这行不通
#include <stdio.h>
#include <math.h>
const float f = log10(2);
int main() {
printf("%f\n", f);
}
因为不能从函数返回值初始化全局变量。
请注意,编译器警告将
float
与double
混合。除非有很好的理由不能使用float
,否则不要使用double
。关于c - 将`log10(2)`的结果赋给常量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51447810/