c - Initializer element is not constant - C
问题描述
I'm getting two errors :
Initializer element is not constant in the 2nd last line below in the code
Expected declaration specifiers '...' before string constant in the last line
#define K 10.0
typedef double (*TFunc)(double);
double alpha,x;
double f(double x)
{
return x*x;
}
double derive(TFunc f, const double x0)
{
const double dx = 1.0e-6; // or similar
double dy = f(x0+dx)-f(x0-dx);
return dy/(2.*dx);
}
double fp = derive(f, K);
printf("%lf\n",fp);
解决方案
您应该将要在执行期间首先运行的任何代码块添加到main
函数中。在你的情况下,你应该把代码:
double fp = derive(f, K);
printf("%lf\n",fp);
变成一个main
函数
int main() {
double fp = derive(f, K);
printf("%lf\n",fp);
}
确保stdio.h
在文件开头包含库,因为您正在使用printf
函数。另外,请确保在K
某处定义常量。我根据上面的建议更新了您的代码,并且编译时没有错误或警告:
#include <stdio.h>
typedef double (*TFunc)(double);
double alpha,x;
double f(double x)
{
return x*x;
}
double derive(TFunc f, const double x0)
{
const double dx = 1.0e-6; // or similar
double dy = f(x0+dx)-f(x0-dx);
return dy/(2.*dx);
}
int main() {
const double K = 1.0;
double fp = derive(f, K);
printf("%lf\n",fp);
}
推荐阅读
- javascript - 覆盖单个实例的数组函数
- javascript - cryptojs.decrypt 返回空结果
- twilio - Twilio 轨道禁用未按预期工作
- java - 即使在设置 server.servlet.contextPath 之后,弹簧执行器也会出现 404 Not found 错误
- regex - 需要从 perl 中最后捕获的字符串返回捕获组的值
- javascript - 为什么我的画布游戏代码从 Javascript 中的构造函数的模块返回“未定义”?
- python - 如何从python字典中删除一些值
- c - MSP432 LaunchPad 按钮初始化
- excel - 将验证列表复制到新书时如何保留另一张纸上的验证列表
- reactjs - 尝试使用 UseEffect 在 react.js 中创建倒计时(日:小时:分钟:秒)