当前位置:首页 » 编程软件 » 设计编译程序注意的问题

设计编译程序注意的问题

发布时间: 2024-10-18 14:08:43

Ⅰ 关于c语言编译阶段的一些问题

呵呵,找一本好书吧。我不能完全给你写清楚,"sting.h"的拼写已经有人说了。
简单地说,要理解几种文件:
A:源文件:例如汇编(asm)、c语言、cpp
B:目标文件
C:库文件(lib)
D:可执行文件

A经过编译器得到B,若干个B可以经过库管理程序得到C,C也可以通过库管理程序得到B(提取)
若干个B通过链接器可以得到D,但是比如strcmp是出现在C中的,但实际上链接器会到C中提取出strcmp所在的B,然后将这个B放入到你的D中。整过过程是一个求闭包的过程,具体参见《Linker and Loader》。

最后说说.h,其实.h本身并不是必要的,但是它可以减少人们的错误,减少重复的代码。
比如printf,你完全可以不include<stdio.h>,你就自己写上一行:
int printf(...);
然后你后面就是直接使用就好了,但是这样会有很多缺陷,这些缺陷可能只有你深刻地理解C语言本身的缺陷后才能明白,不多说了。

Ⅱ 我想开发一个编程语言,算法等等都没问题了,关键是如何把我的语言编译成EXE文件

1、其实这个过程比较复杂。很多高级语言都不是直接将源程序编译成机器码,而是将汇编语言作为目标语言,就是将源码翻译成等价的汇编代码,然后使用现有的汇编语言编译器将中间代码编译成PE格式文件。你没有必要再重复写一个汇编语言编译器,所以会省很多事。
2、即使翻译成汇编代码,也是有很多问题。一是汇编语言严重依赖硬件和平台,因此你需要根据需求,在不同平台上翻译不同的汇编代码;二是编译器的排错。一个编译器能够面对各种情况,无错误运行,本身就是一个奇迹;三是程序的优化问题,一个好的编译器要对生成的代码进行优化,否则编译出的程序不仅很大,而且运行效率低下;四是凡是程序设计语言,有必要给用户提供友好的调试环境,这个编起来也很复杂。
3、实际情况比我说的还要复杂得多。所以,能玩编译器的人不是很多,商品化的编译器更是凤毛麟角。

热点内容
战地配置有哪些 发布:2024-10-18 16:44:48 浏览:308
中国联通短信提示服务密码未完善是什么意思 发布:2024-10-18 16:42:17 浏览:709
c语言中非 发布:2024-10-18 16:21:20 浏览:143
招编程人员 发布:2024-10-18 16:19:37 浏览:422
什么数据类型存储图片 发布:2024-10-18 16:19:28 浏览:749
电脑维护服务器 发布:2024-10-18 16:18:51 浏览:435
取舍算法 发布:2024-10-18 16:12:36 浏览:249
安卓数据线一般在什么价位 发布:2024-10-18 16:09:25 浏览:732
老式安卓机怎么插卡 发布:2024-10-18 15:52:35 浏览:338
pc搭建nas服务器 发布:2024-10-18 15:51:59 浏览:266