[英]How to declare global variables in seperate config.h file
我在 VScode 中而不是在 Visual Studio 中編譯時遇到了問題。
我在項目的包含文件夾中有一個 header 文件config.h
。 請注意,我已將build_flags = -I include
添加到 platformio.ini。 在config.h
,我需要為我需要的 select 數量的全局變量進行一些聲明。 其他一切都是用指針等完成的。
我有兩個問題。
int myVar
)時,出現多重聲明錯誤。 為什么?extern int myVar
。 但隨后我需要在 a.cpp 文件中重新聲明變量 myVar,例如 main.cpp。 這怎么做最好?最終,如何在 header 中聲明一個全局變量,將 header 包含在其他幾個文件中,然后全局使用該變量? (這主要是為了創建隊列和信號量)
如果您只需要全局常量,請參閱在 C++ 中定義全局常量。 假設您需要一個可變的全局變量,有兩種選擇。 無論哪種情況,我們的全局變量都只有一個實例。
extern
// header file
extern MyQueue queue;
在這里,我們簡單地說queue
是在其他一些源文件中定義的。
// source file
MyQueue queue{1, 2, 3};
然后,我們在源文件中定義它。 另請參閱有關外部鏈接的 cppreference
inline
// header file (no source file needed)
inline MyQueue queue{1, 2, 3};
inline
對函數的作用與對變量的作用相同。 它放寬了變量的單一定義規則 (ODR),允許我們在多個位置定義它。 這樣,當在多個源文件中包含 header 時,我們不會收到任何 linker 錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.