乙個優秀的編譯程式

2021-04-06 15:15:57 字數 2217 閱讀 9700

#include

#include

#include

void init()

;    

char *limit=","#","_","'"};

file *fp;

int i;

char c;

fp=fopen("d://k.txt","w");

for(i=1;i<=32;i++)

fprintf(fp,"%s/n",key[i]);

fclose(fp);              

fp=fopen("d://l.txt","w");

for(i=1;i<=38;i++)

fprintf(fp,"%s/n",limit[i]);

c='"';

fprintf(fp,"%c/n",c);

fclose(fp);              

fp=fopen("d://i.txt","w");

fclose(fp);              

fp=fopen("d://c.txt","w");

fclose(fp);              

fp=fopen("d://output.txt","w");

fclose(fp);              

}char * dtb(char *buf)

i=0;

while(value!=0)

temp[i]='/0';

binary=malloc((i+1)*sizeof(char));

for(j=0;j<=i-1;j++)

binary[j]=(char)(temp[i-j-1]+48);

binary[i]='/0';

return(binary);

}int find(char *buf,int type,int command)

c=fgetc(fp);

while(c!=eof)

temp[i]='/0';

i=0;

number++;

if(strcmp(temp,buf)==0)

else

c=fgetc(fp);

}if(command==1)

switch(type)

fprintf(fp,"%s/n",buf);

fclose(fp);

return(number+1);            

}void cs_manage(char *buffer)

void ch_manage(char *buffer)

fclose(fp);

}void er_manage(char error,int lineno)

void scanner()

ch=fgetc(fpin);

while(ch!=eof)

word=(char *)malloc((i+1)*sizeof(char));

memcpy(word,array,i);

word[i]='/0';

ch_manage(word);

if(ch!=eof)

fseek(fpin,-1l,seek_cur);

}else if(ch>='0'&&ch<='9')

word=(char *)malloc((i+1)*sizeof(char));

memcpy(word,array,i);

word[i]='/0';

cs_manage(word);

if(ch!=eof)

fseek(fpin,-1l,seek_cur);

}else if((ch==' ')||(ch=='/t'))

;          

else if(ch=='/n')

line++;          

else if(ch=='/')

else if(ch!='*')

else if(ch=='*')}}

else if(ch=='"')

else

else

}else

}else}}

ch=fgetc(fpin);

}fclose(fpin);

printf("/nthere are %d error(s)./n",errorno);        

}main()

編譯程式的五個階段

第一階段 詞法分析 任務是輸入源程式,對構成源程式的字串進行掃瞄和分析,識別出乙個個的單詞。第二階段 語法分析 任務是在詞法分析的基礎上,根據語言的語法規則,把單詞符號串分解成各類語法單位 語法範疇 如 短語 句子 程式段 和 程式 等。詞法分析和語法分析本質都是對源程式的結構進行分析。第三階段 詞...

gcc編譯程式的流程

gcc編譯器 gcc編譯器 c語言的編譯器gcc g gcc編譯程式的流程 原始檔 c 預處理 i 編譯 彙編 s 鏈結 o 可執行檔案 filename.c 預處理器 編譯器 彙編器 聯結器 excutefile 編譯執行五部曲 一般就三步 對 c檔案直接編譯後直接生成可執行檔案後執行 gcc b...

linux 編譯程式的四個過程

linux 編譯程式的過程與c c 程式編譯過程類似,只是使用的命令或實現的方法不一樣 環境平台不一樣 但是總體框架一樣。一 預編譯 命令是gcc e main.c o main.o 假設當前要編譯的檔案是main.c 1 將所有的 define刪除,並展開所有的巨集定義 2 處理所有的預編譯指令,...