include-guards

    0热度

    3回答

    我有一个包含警卫设置的头文件。我的项目中有多个C文件需要使用此头文件进行编译。当我去编译但是我得到一个错误,说这个函数已经被另一个文件包含了。包括警卫不应该防止这种情况发生?理论上我相信我应该能够导入这个文件很多次,而不是这个问题。 #ifndef __BST_INCLUDED #define __BST_INCLUDED__ //bunch of code here #endif

    1热度

    1回答

    请参阅给出的例子: #ifndef OUTER_H #define OUTER_H class Outer { class Inner { public: Innner(); }; }; #endif 我的问题是:我需要的地方创建一个标题后卫我的内部类,或者只是一个整个文件?

    0热度

    2回答

    当我尝试运行这些标题: Direct3D.h #pragma once //Library Linker #pragma comment(lib, "d3d11.lib") #pragma comment(lib, "dxgi.lib") //Includes #include <d3d11.h> //My Includes #include "SimpleShaderRess

    4热度

    1回答

    我一直在玩gcc的-H选项,它打印出C和C++汇编(relevant section of the gcc manual)中直接和间接的信息。 作为输出的一部分,有一个部分“多个包含守卫可能有用:”,其中列出了一些项目和系统标题。 这是什么意思,这个列表是如何确定的,为什么它说“多个”包括守卫可能有用? (我熟悉的包括防护装置的一般概念,以及为什么会想使用它们 - 我正在寻找有关此消息的特别,这意

    5热度

    1回答

    请不要介意下面的小例子的陌生感Doxygen的要求(我会让它更大的证明,为什么我做的事情这样): 档测试。 CPP: #include "a.h" int main() { return 0; } 文件啊: namespace N { // without namespace all is well! #include "b.h" } 文件BH: /// \file

    3热度

    1回答

    您看到我一直在尝试创建一个std::vector,其中包含IState类中的Entity类。这两个类都是接口。 的误差 '实体' 并没有在此范围 声明,它指向: protected: std::vector <Entity*> ent_map; 内IState.h 我我已经尝试了几个小时来解决它。一旦我在IState.h中做了一个前向声明,但是一旦我做了并试图使用这个向量,它就会发现

    1热度

    2回答

    我想知道我是否可以依靠标准报头中包含守卫的特定定义。如果我用Visual Studio查看我的系统,例如,我可以看到stdint.h定义了_STDINT。我的问题是,如果我也可以依靠#define来编译其他编译器。基本上,我这样做是安全的这样做: #ifndef _STDINT typedef char int8_t; #endif 我知道这可能看起来很愚蠢。为什么不只是包含stdint.

    0热度

    1回答

    我有一个项目,其中包含2个位置的源代码。 当项目链接,它抱怨说,一个功能是双重定义(这不是): cc -c -c -w -fPIC -g3 -Og -D__EMULATE_SOS__ -I../../libSOS/trunk/include -I. -I../../include -I../lib/ABCUtilSO/src -I../../Bla/trunk/src src/Meter.c -o

    2热度

    3回答

    我与几个文件的工作:main.c中assembler.c fileHandlers.c handlers.c 除了我有几个头文件,含常量,函数原型等等。在他们中的一个(“datatypes.h”)我定义字符串数组: #ifndef DATATYPES_H #define DATATYPES_H const char *OPCODES = {"str1",..., str15}. #endif

    -1热度

    2回答

    我知道有关于此问题的多个问题,但是没有一个在我的约束下提供解决方案。 我正在开发一个项目,其中给出了具有特定API的头文件mips_cpu.h。我打算开发它的实现而不改变头文件。此API包括在一个文件中mips_cpu.cpp作为声明的结构: struct mips_cpu_impl; typedef struct mips_cpu_impl *mips_cpu_h; 我已经然后mips_cpu.