#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 處理所有的預編譯指令,...