0
我正在研究当前的一个项目ntohl
,ntohs
,htonl
和htons
被定义为大多数文件包含的标准头文件中的宏。这会在已经定义这些符号的平台上导致问题,例如,winsock2.h声明具有上述相同名称的函数,并导致编译错误,因为这些声明已扩展到我的宏定义。在Mac OS上,我收到了数以千计的编译器警告,因为Mac OS已经为您定义了这些宏。针对多个平台的网络/主机字节顺序功能
我想支持Windows,Mac OS和Linux,并尽可能使用标准的OS函数或宏,如果它们没有被剥落,那么请使用我自己的定义。做这个的最好方式是什么?
我曾尝试:
#if defined WIN32
#include <winsock2.h>
#endif
但这会导致因为有很多的功能名称冲突在我当前的代码库大编译错误。