在 WinDef.h 的深处有一段来自分段内存时代的遗迹:
#define far
#define near
如果您尝试使用近或远作为变量名称,这显然会导致问题。有什么干净的解决方法吗?其他然后重命名我的变量?
您可以安全地取消定义它们,这与其他人的说法相反。原因是它们只是宏。它们只影响定义和未定义之间的预处理器。就您而言,这将从 windows.h 的早期到 windows.h 的最后一行。如果您需要额外的 Windows 标头,可以将它们包含在 windows.h 之后和 #undef 之前。在您的代码中,预处理器将按照预期简单地保留符号不变。
关于旧代码的评论是无关紧要的。该代码将位于一个单独的库中,独立编译。只有在链接时,这些宏才会被连接,而宏早已消失。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)