c语言如何查看内置函数,C中函数内部的函数

我正在做一个类似这样的代码:

#include

double some_function( double x, double y)

{

double inner_function(double x)

{

// some code

return x*x;

}

double z;

z = inner_function(x);

return z+y;

}

int main(void)

{

printf("%f\n", some_function(2.0, 4.0));

return 0;

}这在GCC中完美编译(没有警告),但无法在ICC中编译。

ICC给出:

main.c(16): error: expected a ";"

{

^

main.c(21): warning #12: parsing restarts here after previous syntax error

double z;

^

main.c(22): error: identifier "z" is undefined

z = inner_function(x);

^

compilation aborted for main.c (code 2)我究竟做错了什么?

谢谢。

(编辑)对不起,这个不好的例子。在我的原始代码中,我需要做这些事情。我正在使用GSL数字积分器,并具有类似如下内容:

double stuff(double a, double b)

{

struct parameters

{

double a, b;

};

double f(double x, void * params)

{

struct parameters p = (struct parameters *) params;

double a = p->a, b = b->b;

return some_expression_involving(a,b,x);

}

struct parameters par = {a,b};

integrate(&f, &par);

}我有很多这种结构的函数:它们是一个函数与许多外部参数集成的结果。而实现数值积分的函数必须接收一个指向函数类型的指针:

double f(double x, void * par)我真的很喜欢这样嵌套的函数,所以我的代码不会有很多很多的函数膨胀。我希望我能用ICC编译它来加速一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值