【发布时间】:2011-08-11 19:49:31
【问题描述】:
我正在研究 GSL 库中的一段代码,但对头文件开头的几行代码感到困惑。 我了解#undef、#ifdef 等的作用,但我不明白的是为什么他们基本上重置了_BEGIN_DECLS 的定义,然后再继续定义它?从技术上讲,不应该有任何先前的定义,对吧?我的意思是,这些东西是静态的,不会发生变化。 无论如何,这是代码的摘录:
#undef __BEGIN_DECLS
#undef __END_DECLS
#ifdef __cplusplus
# define __BEGIN_DECLS extern "C" {
# define __END_DECLS }
#else
# define __BEGIN_DECLS /* empty */
# define __END_DECLS /* empty */
#endif
【问题讨论】:
-
为什么投反对票?对我来说似乎是一个合理的问题。
标签: c++ c-preprocessor preprocessor-directive