有没有一个好的编写便携式C的在线教程?

有没有一个好的编写便携式C的在线教程?,c,solaris,portability,conditional-compilation,C,Solaris,Portability,Conditional Compilation,我有一些在portable C中工作的工具,它们在Windows Visual Studio 2008中工作,在Ubuntu Linux中基于#ifdef\u WIN32的gcc中工作,但是添加对Solaris的支持似乎比较棘手,特别是如果我想支持cc以及gcc 例如,我有一些代码,它们sprintfs进入分配的内存缓冲区,在Linux/gcc上使用vasprintf,在Windows/MSVC上使用\vscprintf/vsprintf。在Solaris上,两者都不可用,我可以使用vsnpri

我有一些在portable C中工作的工具,它们在Windows Visual Studio 2008中工作,在Ubuntu Linux中基于
#ifdef\u WIN32
的gcc中工作,但是添加对Solaris的支持似乎比较棘手,特别是如果我想支持
cc
以及
gcc

例如,我有一些代码,它们
sprintf
s进入分配的内存缓冲区,在Linux/gcc上使用
vasprintf
,在Windows/MSVC上使用
\vscprintf
/
vsprintf
。在Solaris上,两者都不可用,我可以使用
vsnprintf
,但我不知道要向我的
#ifdef
添加什么,也不知道是否应该移动到其他位置


希望我不必使用cygwin,mingw进行配置。

进行此类测试的唯一真正方法是使用gnu的autoconf+配置(或简单配置)。然后,您可以测试vsprintf是否存在,vasprintf测试失败,vsnprintf测试失败,等等。。然后,您可以让configure定义HAS_VSPRINTF等,以便在代码中使用,并围绕正确的函数编写包装函数


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

自动功能(1)手册有一个。

有很多文章……你看了哪些?@Mitch Wheat:我做了一些谷歌搜索和StackOverflow搜索,发现似乎是FAQ问题的内容很少,所以我决定在这里问一下,从现在起,谷歌在哪里可以轻松找到所有人的答案(:我过去几年的待办事项列表中都有学习自动确认/配置功能,但每次看它时,我都会觉得我真的需要留出大量时间,而且我认为它不适用于我希望支持的Visual Studio。它不适用于Visual Studio,但您可以使用它生成一个config.h文件(这样做,你只需要在一个相当标准的mingw盒子下完成)然后将其与你的MSV项目一起发布。