重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
有一个软件叫“exe4j”,虽然不能把java程序转成C代码但是可以转成.exe文件,在没装JDK的电脑上也能运行,你要想把java的代码转成C代码估计不太现实。C都没类这个概念
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比金东网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式金东网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖金东地区。费用合理售后完善,10多年实体公司更值得信赖。
#include "stdio.h"
static int num =1;
static int name =2;
static int type =3;
static int m;
static void Sel();
static void Sel1();
static void Dis();
static void Dis1();
static void Sel()
{
/*这里读者号,姓名和读者类型默认为1 2 3*/
scanf("%d", num);
scanf("%d", name);
scanf("%d", type);
if (num == 1)
{
if (name == 2)
{
if (type == 3)
{
Dis1();
Sel1();
}
}
}
else
{
printf("你输入的信息有误。");
printf("请输入读者号,姓名和读者类型,中间用空格隔开:\n");
}
}
/*输入信息提示界面*/
static void Dis()
{
Sel();
}
/*功能选择界面*/
static void Dis1()
{
printf("+++ 服务 +++\n");
printf("+++1.挂失 +++\n");
printf("+++2.功能2+++\n");
}
/*读者信息输入和验证功能*/
/*挂失功能*/
static void Sel1()
{
int c;
scanf("%d", m);
if (m == 1)
{
printf("确定要挂失吗?\r\n 1.确定 2.取消\n");
scanf("%d", c);
if (c == 1)
{
printf("挂失成功!");
}
else
{
Dis1();
Sel1();
}
}
}
int main(void)
{
printf("请输入读者号,姓名和读者类型,中间用空格隔开:\n");
Sel();
return 0;
}
这只是按照你原来算法改的,没有做其他修改,功能什么的都没有变过。
使用词法分析可以简单的进行转换,不过问题是接口,java使用的库类和函数,c并不一定拥有,而且java运行的方式不同(java可以说是解释器的脚本,而c最终变成指令集),并不是简单给出一个函数调用位置就可以解决的,目前的话可以实现个转化器(如果你学过编译原理),但前提是不使用接口,或许我们可以像编译器对string类型的支持那样实现所有java的库操作,但这显然是鸡肋,因为这种方法写的java程序转换后是很难移植的(显然我是说硬件厂商不会为你天真的想法提供接口),并且对c风格来说是一种极大的破坏,最后生成的代码既没有效率也没有可移植性和可读性
结论是你还不如自己实现一个,即使你要转化一个大游戏,这样也有效多了
看实现的什么功能。
简单的, 把java的库函数改成对应C库函数。
函数声明形式改一下。
基本上都差不多了。
复杂的 尤其用到自定义类的, 改起来很累的,不如重新写一个了。