我正在使用<conio.h>
头文件,在我的源代码的其他地方我定义了一个具有名称的函数,getch
它必须具有该名称。由于已经有一个getch
in <conio.h>
,并且这个头文件在全局命名空间中声明了它的所有函数,我得到了一个名称冲突。
我发现使用以下语法可以避免冲突:
namespace some_namespace
{
#include <conio.h>
}
然后我可以some_namespace::getch
在我想访问其中的功能<conio.h>
以及getch
我想访问自己的功能时使用。
这是有效的语法吗?我知道<conio.h>
仅适用于 Windows,但是这种语法在所有编译器中的行为是否相同?你有什么其他方法可以解决这个问题?
编辑:
我在 Windows 上使用 GCC 和 MSVC 2019,它们都可以正常编译。
我也可以访问其中的函数<conio.h>
,getch
特别是如上所示(即使我应该使用名称_getch
而不是getch
MSVC)。