深圳幻海软件技术有限公司 欢迎您!

制作C语言编译器的要点

2023-03-25

制作C语言编译器的要点近来想自己做一个C语言的编译器(假如这个编译器称为S),查阅资料,把其中的要点整理如下:编译编译.c的程序可用mingw的gcc命令:gcctest.c-otest.exe1编译C++的程序要用g++:g++test.cpp-otest.exe1注意:上述命令在执行时如果显示找

制作C语言编译器的要点

近来想自己做一个C语言的编译器(假如这个编译器称为S),查阅资料,把其中的要点整理如下:

编译

编译.c的程序可用mingw的gcc命令:

gcc test.c -o test.exe
  • 1

编译C++的程序要用g++:

g++ test.cpp -o test.exe
  • 1

注意:上述命令在执行时如果显示找不到命令,需要在命令前面加路径,或者设置PATH环境变量。

错误信息的重定向

编译时如果程序存在错误,这个错误信息显然要在编译器S的界面显示。为此我们需要把命令行的错误信息重新定向到文件中,如:

g++ test.cpp -o test.exe 2>err.txt
  • 1

这里2表示出错信息。编译器S可以从err.txt读取出错信息显示在编译器界面。

C程序运行输出

编译成功会产生可执行程序,如上面的test.exe,运行此程序即可输出程序结果,该结果直接显示在命令行环境:

test.exe
  • 1

但是我们制作自己的编译器S时,显然需要把输出结果显示在编译器界面。为此我们需要把C程序的输出结果重定向到文件,然后编译器S从此文件读取内容显示到编译器界面。重定向的命名如下:

test.exe > result.txt
  • 1

C程序运行时的数据输入

C程序在运行时常常要从键盘输入数据,我们可以在编译器界面输入提供给C程序的数据,然后编译器将其保存到文件(假如是inputdata.txt),然后运行如下命令即可:

type inputdata.txt | test.exe > result.txt
  • 1
文章知识点与官方知识档案匹配,可进一步学习相关知识
C技能树首页概览134650 人正在系统学习中