【发布时间】:2010-10-04 19:06:55
【问题描述】:
我正在构建一个应用程序,它包含一个用 C 编写的 Windows 驱动程序和一个用 C++ 编写的用户模式可执行文件。它们都使用共享头文件来定义多个宏、常量、枚举等。在 C++ 版本中,我想将所有内容包含在命名空间中,C 编译器不支持此功能。是否有某些变量我可以检查以用作 Visual Studio 的预处理器指令,如下例所示?
#ifdef USING_CPLUSPLUS
namespace mynamespace{
#endif
struct mystruct{
...
};
#ifdef USING_CPLUSPLUS
}
#endif
【问题讨论】:
-
在这种情况下,您可能应该只在
mynamespace'). otherwise,mynamespace::mystruct' 中声明mynamespace_mystruct' as a c struct (then maybe typedefmystruct' 和 `mystruct' 是不同的类型......这只会产生一堆奇怪的条件代码对于使用该界面的人。
标签: c++ c visual-studio c-preprocessor