我一直在寻找一个好的资源,为C项目的条件编译和跨平台可移植性提供最佳实践的讨论。
例如:
编写一个网络库(取决于底层平台)使用TCP或SCTP。通常的方法可能是定义一个通用的API规范,让makefile决定编译正确的实现。
我无法想象使用MACROS和代码复制的条件编译在这里是一个好主意(因为这样的网络实现大致相同,具有不同的SEND和RECEIVE原语)。
是否有人有好的建议或讨论这些问题的最佳实践?
感谢您的投入!
答案 0 :(得分:0)
如果您将它们限制在极少数地方,那么宏很好。例如:
#if defined LINUX
# include "linux/mylib.h"
#elif defined WINDOWS
# include "windows/mylib.h"
#else
# error "unsupported platform!"
#endif