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.