【发布时间】:2014-05-19 15:22:04
【问题描述】:
我正在阅读一段似乎可以选择使用 C++ Boost 库的代码。如下:
#ifdef _HAVE_BOOST
#include <boost/random.hpp>
#endif
稍后在代码中,有几个语句依赖于这个“_HAVE_BOOST”。如果正确导入了 C++ 库,我认为 _HAVE_BOOST 只是一个设置为 true 的标志。
“_HAVE_BOOST”标志是 C++ ifdef 语法的内置部分吗?也就是说,我尝试用谷歌搜索这个标志,但没有找到任何文档。此外,在文件的头部,没有#include<boost> 存在。整个文件中似乎不推荐使用此增强功能 - 如果添加了此 #include<boost>,是否会将 _HAVE_BOOST 设置为 true?
是否有一个列表或文档来描述与#ifdef 一起出现的各种大写字母?
【问题讨论】:
-
#ifdef只是检查是否定义了符号。 -
我将您的标题编辑为实际描述某事的标题。在搜索结果中找到这个问题的人会感谢我。
-
什么时候定义_HAVE_BOOST?它是内置的吗?是什么导致它被定义?
-
您可以在编译器命令行上定义符号(通常是
-D)。在包含此文件之前,它可以在不同的文件中定义。