Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java到C的迁移_Java_C_Migration - Fatal编程技术网

Java到C的迁移

Java到C的迁移,java,c,migration,Java,C,Migration,我必须将一个用Java运行的程序转换成C语言,我面临着一些困难 将Java接口转换为C的最佳方式是什么?我还有实现这些接口的类。我应该如何转换C代码中的类,使它们仍然与相应的接口保持连接 从Java到C的反射的等价性是什么 多谢各位 C不是面向对象的,所以没有类。您必须将Java类转换为工作过程函数,使用struct类型将有助于封装类变量 >你可以试试C++,因为你可能会把你的java类对象大部分都移植到C++上。如果你决定使用C++,你也可以学习STD,和提升库,它将支持你在java API

我必须将一个用Java运行的程序转换成C语言,我面临着一些困难

  • 将Java接口转换为C的最佳方式是什么?我还有实现这些接口的类。我应该如何转换C代码中的类,使它们仍然与相应的接口保持连接

  • 从Java到C的反射的等价性是什么

  • 多谢各位

  • C不是面向对象的,所以没有类。您必须将Java类转换为工作过程函数,使用
    struct
    类型将有助于封装类变量

  • <> >你可以试试C++,因为你可能会把你的java类对象大部分都移植到C++上。如果你决定使用C++,你也可以学习STD,和提升库,它将支持你在java API中发现的大部分功能。 如果你打算重新创建GUI,我建议你去看看跨平台的GUI API,比如GTK+,它既可以同时使用C和C++,也可以是C++的QT,它有自己的IDE,非常好。否则,您将不得不学习Windows/Unix/Mac/ETCAPI,以便创建自己的GUI

    希望这有帮助


    -Dave

    如果您要将代码从Java移植到C,那么您将无法获得显式面向对象的好处。你真的用C++重写吗?我知道我在C中没有受益于OOP,这就是我问这个问题的原因。我把代码从java转换成C,所以我不能使用C++或其他面向对象的编程语言。哇,祝你好运。java应用程序是否使用了很多OOP功能?接口、类、继承、多态性、反射……我认为内存管理将是最难解决的问题。在C程序中伪造垃圾收集并非易事。你剩下的问题似乎都是关于数据结构的。C当然可以用来模拟Java所做的任何事情;如果JVM大部分不是用C编写的,我会感到惊讶。这种转换的目的是什么。我尝试使用带有函数指针的结构作为接口和类的等价物。我为实现接口和扩展其他类的类完成了struct-in-struct。但是我发现从接口结构中定义的函数访问类结构中定义的变量非常困难。有什么想法吗?哦,是的,我不会把函数指针放在结构中,我只会在结构中封装必要的变量,并根据需要使用外部函数来操作变量。将包含必要变量的结构的ptr传递给函数。可能不是最理想的解决方案,但我不确定C中是否还有其他方法。为了访问struct中的变量,我必须将struct传递给函数,或者只传递所需的变量……但要做到这一点,我必须从接口更改原始函数的原型。我不想这样做,因为我需要更改实现该接口的每个不同类的函数。我还想在实现接口的每个类中定义一个不同的函数,对应于接口中的函数,但这是否正确?好的,函数和结构的方式将是最标准的方式,您只需为每个函数添加一个参数,即结构的ptr。如果将所需的结构放在全局变量中,基本上无需更改原型,但必须在调用函数之前将全局变量设置为要更改的结构的ptr。有点像。。。上下文系统。在调用函数之前设置上下文。