circletiger 于 2012-03-13 19:20:16发表:
听了似懂非懂。
pl_014 于 2012-03-11 19:50:18发表:
32位程序与64位程序主要的不同体现在变量及指针所占用的内存空间及其取值范围,具体的不同大多数人应该都知道。从这点上看,汇编语言的移植难度较大,C语言应当看程序如何进行编写,认真读过《C专家编程》《C陷阱与缺陷》《C和指针》的人会比较了解如何写高可移植性的程序,因为90年以前那时的计算机硬件平台和操作系统还没有形成垄断的局面,软件的生存期往往比想象的要长很多,再具体点,就是不要对C编译器的底层实现和用户的硬件特性作出过多的假设,比如说简单地使用移位进行乘除法,一般情况下,尽可能地只用C99标准明确提到的特性。 另外,linux和unix下有一种工具叫lint,主要用来检测可能会出现的链接上的问题和不可移植问题,如果只用标准库的话,lint程序基本上是必备工具。
alick 于 2012-03-11 11:51:53发表:
参考下这里:http://coolshell.cn/articles/3512.html
Action 于 2012-03-11 08:55:26发表:
这个不懂,等答案
circletiger 于 2012-03-13 19:20:16发表:
听了似懂非懂。
pl_014 于 2012-03-11 19:50:18发表:
32位程序与64位程序主要的不同体现在变量及指针所占用的内存空间及其取值范围,具体的不同大多数人应该都知道。从这点上看,汇编语言的移植难度较大,C语言应当看程序如何进行编写,认真读过《C专家编程》《C陷阱与缺陷》《C和指针》的人会比较了解如何写高可移植性的程序,因为90年以前那时的计算机硬件平台和操作系统还没有形成垄断的局面,软件的生存期往往比想象的要长很多,再具体点,就是不要对C编译器的底层实现和用户的硬件特性作出过多的假设,比如说简单地使用移位进行乘除法,一般情况下,尽可能地只用C99标准明确提到的特性。
另外,linux和unix下有一种工具叫lint,主要用来检测可能会出现的链接上的问题和不可移植问题,如果只用标准库的话,lint程序基本上是必备工具。
alick 于 2012-03-11 11:51:53发表:
参考下这里:http://coolshell.cn/articles/3512.html
Action 于 2012-03-11 08:55:26发表:
这个不懂,等答案