首先说明下,我不是php调用一个C的程序,这个我会。。void init(){......}
int function(int x){......}
int main()
{
int x;
init();
while(1)
{
int answer=function(x);
}
return 0;
}C程序大概就如上所示,我现在是做的是:
在C程序中的init()运行完后,用php语言调用function函数(不止一次),把参数x传进去,并把值answer返回给php中的变量。
这个该如何实现?或者推荐一些资料也好! 望不吝赐教!
php调用c函数
int function(int x){......}
int main()
{
int x;
init();
while(1)
{
int answer=function(x);
}
return 0;
}C程序大概就如上所示,我现在是做的是:
在C程序中的init()运行完后,用php语言调用function函数(不止一次),把参数x传进去,并把值answer返回给php中的变量。
这个该如何实现?或者推荐一些资料也好! 望不吝赐教!
php调用c函数
exe文件也可以接命令行参,所以用system调用编译好的二进制文件也可以实现目的。不过这样效率比做成php扩展低太多了。
比如google protocol buffer,再比如thrift。使用它们可以让不同语言相互通信,其原理大概是将不同语言的数据类型串行化,然后通过中间件的编译成另一种语言可识别的数据格式。比如我在cpp中定义了个class,转换到c就自动成为了一个struct,不过这种转换会有一定程度损失。比如class的封装概念在c中是不存在的。