
可移植性 指 源程序 可以用到 另一台机上,编译后能正确运行。
移植性高,指 源程序 不需改动或只需稍加改动,就能编译后正确运行。
也有人理解,可移植性包括可翻译性,例如,通过翻译程序翻译,或解释程序解释,就能在另一台机上(另一种 *** 作系统或硬件平台)运行。
可移植性并不是指所写的程序不作修改就可以在任何计算机上运行,而是指当条件有变化时,程序无需作很多修改就可运行。
直到MS—Windows出现之前,许多MS—DOS程序员还不怎么关心可移植性问题。然后,突然之间,他们的程序不得不在一个看起来不同的 *** 作系统上运行。当Power PC流行起来后,Mac机的程序员不得不去应付一个新的处理器。任何一个在同版本的UNIX下维护过程序的人所了解的可移植性的知识,恐怕都足以写成一本书,更别说写成一章了。
可移植性的本意是按照意料之中的方式做事情,其目的不在于简化编译程序的工作,而在于使改写(重写!)程序的工作变得容易。如果你就是接过别人的程序的“倒霉蛋”,那么原程序中的每一处出乎意料之外的地方都会花去你的时间,并且将来可能会引起微妙的错误。如果你是原程序的编写者,你应该注意不要使你的程序中出现出乎接手者意料之外的代码。你应该尽量使程序容易理解,这样就不会有人抱怨你的程序难懂了。此外,几个月以后,下一个“倒霉蛋”
很可能就会是你自己了,而这时你可能已经忘记了当初为什么用这样复杂的一种方式来写一个for循环。
使程序可移植的本质非常简单:如果做某些事情有一种既简单又标准的方法,就按这种方法做。
你想说的通用是指什么呢?因每个软件都有它所依赖的运行库,如果你要迁移的目标系统满足相应软件的运行库要求,应该是可以平滑迁移的。其实Linux各大发行版上发布的软件,之所以没有二进位包安装程序,就是因为包的依赖关系不好解决,Linux继承了Unix的胶水哲学,即把一串工具组成一个解决方案,遇到无法解决的问题才重新写一个工具,它和Windows平台不同的是,Windows平台的软件在一个软件内提供给用户尽可能多的功能,而Linux则侧重于一个工具解决一个问题。你所说的迁移软件其实在Linux是不需要的,只要你手里有相应软件的源码包,在新系统里重新编译一次就是了。
以上就是关于C语言移植怎么样理解全部的内容,包括:C语言移植怎么样理解、linux程序为什么不能通用,个版本的程序的移植如何实现,是什么原因造成的,是编译软件不通的原因吗、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)