用于跨平台C/C++开发的资源

Kev*_*sen 6 c c++ portability

有哪些资源可以帮助编写跨多个平台和编译器的C/C++代码?例如,我经常发现自己提出的问题如下:

  • 在各种编译器和环境中自动定义哪些预处理器宏?(例如__GCC__,WIN32,__WIN32__,__CYGWIN__)
  • 哪些版本的编译器和标准库支持相对较新的"标准"函数(例如C99长双三角函数sinl(),cosl(),...)
  • 当没有单个便携式功能似乎存在时,在不同平台上可用于执行典型任务的功能是什么?(例如,以亚秒精度获得当前时间)

我经常写代码应该编译在Linux/GCC,cygwin的,mingw32的,和Visual Studio,我经常要比较来自多个来源的说明(Linux手册页,MSDN,编译器文档),以获得我需要的信息.这一定是开发人员一直遇到的问题 - 是否有任何资源将这些信息编译成易于理解的参考?

(对于这个问题,我对wxWidgets或boost等跨平台库并不特别感兴趣.我对那些可以帮助某人编写自己的跨平台库或程序的资源或技术更感兴趣.)

编辑:这是我正在寻找的页面类型的示例:http://predef.sourceforge.net/precomp.html.对各种编译器/环境以及可用于识别它们的预处理器宏的一个很好的调查.这将是伟大的发现,跨平台相比几乎相当于功能类似的资源(如gmtime_r()或FTIME()在Linux中VS _gmtime_s()或Windows _ftime())时,没有共同的功能存在.

Ste*_*ows 5

以下是一项可能对您有用的资源:预定义的 C/C++ 编译器宏


小智 1

编写跨平台代码的基本方法是编写不依赖于特定平台的代码。例如,几乎所有原始 UNIX 实用程序都可以在不参考特定平台的情况下编写。使用条件编译编写依赖于特定宏的代码并不是最佳实践。