有一個軟件叫“exe4j”,雖然不能把java程序轉成C代碼但是可以轉成.exe文件,在沒裝JDK的電腦上也能運行,你要想把java的代碼轉成C代碼估計不太現實。C都沒類這個概念
成都創(chuàng)新互聯公司-專業(yè)網站定制、快速模板網站建設、高性價比金東網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式金東網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋金東地區(qū)。費用合理售后完善,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庫函數。
函數聲明形式改一下。
基本上都差不多了。
復雜的 尤其用到自定義類的, 改起來很累的,不如重新寫一個了。