有没有很好的在线教程来编写可移植的C语言



我有一些工具,我正在便携式C工作在Windows Visual Studio 2008和gcc在Ubuntu Linux基于#ifdef _WIN32,但增加对Solaris的支持似乎是棘手的,特别是如果我想支持cc以及gcc

举个例子,我有一些代码,sprintf进入分配的内存缓冲区,在Linux/gcc上使用vasprintf,在Windows/MSVC上使用_vscprintf/vsprintf。在Solaris上,我可以使用vsnprintf,但我不知道要添加什么到我的#ifdef s,或者我是否应该移动到其他东西。

希望我不需要移动配置cygwin, mingw。

autoconf(1)手册有一节是关于可移植C语言编程的。

做这样的测试的唯一真正的方法是使用像gnu的autoconf + configure这样的东西(或者只是简单的configure)。然后你可以测试vsprintf是否存在,vasprintf测试失败,vsnprintf测试失败,等等。然后,您可以通过configure来定义要在代码中使用的HAS_VSPRINTF之类的东西,并在正确的函数周围编写包装器函数。

这将是最可移植的测试方式,也是编写解决方案的最可移植的方式,尽管可能也是最麻烦的-这绝对是我对生产代码所做的。