可能重复:
Is there a clean way to prevent windows.h from creating a near & far macro?
Windef.h中这两个定义的重点是什么?
#define far /* nothing */
#define near /* nothing */
我知道它与near and far指针有关,而且它们已不再使用,但#undef
它们是否安全,因此我可以使用near
和{ {1}}作为我的代码中的函数和变量名?
或者,我应该简单地避免它,并且从不使用far
和near
作为标识符吗?
答案 0 :(得分:4)
不要重复使用它们。你需要的最后一件事就是不得不反复向人们解释他们不是老派的装饰品。
如果它对您的应用程序至关重要,您可能会考虑使用大写版本(因为标识符区分大小写) - 编译器会在您陷入困境时捕获拼写错误。
请接受这是从过去的计算机仍然是用金属制造的好日子。
答案 1 :(得分:1)
虽然取消定义这个空宏实际上是无害的,但我肯定会避免重用一些众所周知的宏......这就像使用goto
作为变量名只是因为你没有将它用作关键字。