C 条件编译实现备选方案
我正在寻找一个好的资源,它提供了关于C项目的条件编译和跨平台可移植性的最佳实践的讨论 例如: 编写使用TCP或SCTP的网络库(取决于底层平台)。通常的方法可能是定义一个公共API规范,让makefile决定编译正确的实现 我无法想象在这里使用宏和代码复制进行条件编译是一个好主意(因为这样的网络实现基本上是相同的,具有不同的发送和接收原语) 有没有人有好的建议或好的资源来讨论这些问题的最佳实践C 条件编译实现备选方案,c,cross-platform,portability,conditional-compilation,C,Cross Platform,Portability,Conditional Compilation,我正在寻找一个好的资源,它提供了关于C项目的条件编译和跨平台可移植性的最佳实践的讨论 例如: 编写使用TCP或SCTP的网络库(取决于底层平台)。通常的方法可能是定义一个公共API规范,让makefile决定编译正确的实现 我无法想象在这里使用宏和代码复制进行条件编译是一个好主意(因为这样的网络实现基本上是相同的,具有不同的发送和接收原语) 有没有人有好的建议或好的资源来讨论这些问题的最佳实践 谢谢你的意见 如果将宏限制在很少的位置,则宏是好的。例如: #if defined LINUX #
谢谢你的意见 如果将宏限制在很少的位置,则宏是好的。例如:
#if defined LINUX
# include "linux/mylib.h"
#elif defined WINDOWS
# include "windows/mylib.h"
#else
# error "unsupported platform!"
#endif
通常的方法有什么问题吗?您是否尝试过使用这种方法查找其他库的任何现有示例?我在使用宏解决此类问题时遇到的问题是(如果使用得更频繁),它们会使测试变得非常麻烦。是的,但是如何在两个lib之间共享相同的代码,这在两个平台上都是等效的?可能会引入一个级别的头间接寻址?