【发布时间】:2014-12-20 03:43:17
【问题描述】:
我对@987654321@ 指令在C/C++ 中的工作方式感到困惑。我的第一个问题是:
如果标题 A 包含标题 B first 和 then 标题 C,那么标题 B 中定义的所有内容是否都可以立即在标题 C 中使用?例如:
/* FILE: header A */
#include "B.h"
#include "C.h" //are stuff from B.h available INSIDE C.h now?
我的第二个问题是(与上面有些相关)这种包含行为在 C 和 C++ 中是否不同?
最后,我正在尝试使用 C++ 编译器编译freeglut,freeglut 的标头具有以下内容:
#ifndef __FREEGLUT_H__
#define __FREEGLUT_H__
#include "freeglut_std.h"
#include "freeglut_ext.h"
#endif /* __FREEGLUT_H__ */
问题是,在编译为 C 时,一切都很好,但在 Visual Studio 中切换到 C++ 突然使 freeglut_ext.h 不知道 freeglut_std.h 中定义的所有内容。这是仅限于 MSVC 的问题吗?
【问题讨论】:
-
第一个问题的答案是“是”
标签: c++ c visual-studio visual-studio-2012 freeglut