现在这让我想知道,C语言通常是一种非常可移植的语言。那么,C语言的哪些部分(特别是标准库中的部分)是最不可移植的?哪些部分可以预期在大多数平台上工作?是否只应使用有限的数据类型(例如避免使用short和可能的float)?文件和stdio系统怎么样?malloc和free? Lua似乎避免了所有这些。这是把事情带到了极端吗?还是它们是可移植性问题的根源?除此之外,还有什么其他方法可以使代码具有极高的可移植性?
我之所以问所有这些问题,是因为我正在用纯C89编写一个应用程序,而且它尽可能地需要具有可移植性。我愿意在实现过程中采取一定的中间路线(足够可移植,但不至于让我不得不从头开始编写)。无论如何,我只是想看看编写最佳C代码的关键是什么。
最后要注意的是,所有这些讨论都与C89有关。