define 一个和内联函数名一样的值

提及 2019-08-11 09:07:50

我在 `ws2tcpip.h` 发现


#define WS2TCPIP_INLINE __CRT_INLINE
#define __CRT_INLINE extern inline __attribute__((__gnu_inline__))

#define IN6_IS_ADDR_UNSPECIFIED IN6_IS_ADDR_UNSPECIFIED
#define IN6_IS_ADDR_LOOPBACK IN6_IS_ADDR_LOOPBACK
#define IN6_IS_ADDR_MULTICAST IN6_IS_ADDR_MULTICAST
#define IN6_IS_ADDR_LINKLOCAL IN6_IS_ADDR_LINKLOCAL
#define IN6_IS_ADDR_SITELOCAL IN6_IS_ADDR_SITELOCAL
#define IN6_IS_ADDR_V4MAPPED IN6_IS_ADDR_V4MAPPED
#define IN6_IS_ADDR_V4COMPAT IN6_IS_ADDR_V4COMPAT
#define IN6_IS_ADDR_MC_NODELOCAL IN6_IS_ADDR_MC_NODELOCAL
#define IN6_IS_ADDR_MC_LINKLOCAL IN6_IS_ADDR_MC_LINKLOCAL
#define IN6_IS_ADDR_MC_SITELOCAL IN6_IS_ADDR_MC_SITELOCAL
#define IN6_IS_ADDR_MC_ORGLOCAL IN6_IS_ADDR_MC_ORGLOCAL
#define IN6_IS_ADDR_MC_GLOBAL IN6_IS_ADDR_MC_GLOBAL


为什么要这么做?

对应的函数源码在 .h 中而且都打上了 `WS2TCPIP_INLINE`

在编译的时候提示
`undefined reference to "IN6_IS_ADDR_LOOPBACK"`

使用 inline 在 gcc 中是不通过编译的,并且这个头文件是 mingw准备的

我使用 -U 没用 -D 没用 undef 没用

所以我只能将代码拷贝过去了😑

是不是存在使用问题,还是说用法不对?

---
并没有过 windows 开发经验,我只是在编译 putty
...全文
72 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧