有哪些资源可以帮助编写跨多个平台和编译器工作的 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。对各种编译器/环境以及可用于识别它们的预处理器宏进行了很好的调查。当不存在通用函数时,如果能找到一个类似的资源来比较跨平台的几乎等效函数(如 Linux 中的 gmtime_r() 或 ftime() 与 Windows 中的 _gmtime_s() 或 _ftime()),那就太好了。