c 语言调用函数如何换行,关于换行和调用C函数

typedef int (*func_t)(int arg);

int foo(int a) {

return a + 1;

}

func_t create_wrap_function(func_t f) {

int wrapped(int arg) {

// call original function

int val = f(arg);

fprintf(log_func_call, "arg: %d ret: %d", arg, val);

return val;

}

return wrapped;

}

但它不是常见的解决方案。 create_wrap_function具有固定的函数格式,因为func_t限制了格式。

我们知道,Lua已经关闭了,并且也可以调用C函数。 我想要实现的内容如下: 我们想要调用的函数是foo1和foo2,它们具有不同类型的参数和返回值。

int foo1(int a) {

...

return intValue;

}

double foo2(char* str, double a) {

...

return dblValue;

}

在C端,呼叫等功能:

lua_returnValue returnValue1 = Do_Lua_Wrap(__FILE__, __LINE__, foo1, 1);

lua_returnValue returnValue2 = Do_Lua_Wrap(__FILE__, __LINE__, foo2, "string data", 1.2345);

在Do_Lua_Wrap,它将foo1和1传递到Lua函数,然后调用函数foo1像正常过程。 然后将foo2和一个char *以及一个double值传递给Lua函数,然后像正常进程那样调用foo2函数。 在Lua函数中,它可以记录有关FILE和LINE 的信息并写入一些关于函数参数的额外日志。

但我不知道如何编写函数Do_Lua_Wrap在C和Lua中, 是否有可能?

如果可能,你能给我一些建议吗?

2011-02-28

sagasw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值