![](/img/trans.png)
[英]What is the difference between declaring a static variable in a class in the .h file and a “global” variable in the .cpp file
[英]What is the difference between declaring a variable in a header instead of the source file (cpp/h)
在標頭中 聲明變量和在源代碼中聲明變量之間有什么區別嗎? 例如性能 , 證券
完全沒有區別。 除非它們最好以支持以下方式編寫:
通常會寫一個標頭,以便它不會多次聲明其內容。
#ifndef __THIS_HEADER_H #define __THIS_HEADER_H 1 .... (content of header which is protected from multiple insertions) #endif
一個模塊可能包含一個.c
文件,但是這種用法很少(不推薦):
交流電:
#define PERSONALITY 1
#include "main_logic.c"
公元前:
#define PERSONALITY 2
#include "main_logic.c"
main_logic.c:
#if PERSONALITY == 1
int main (void)
{
printf ("personality 1\n");
}
#endif
#if PERSONALITY == 2
int main (void)
{
printf ("personality 2\n");
}
#endif
在標頭中聲明變量使它們可以使用#include<...>
包含在所有包含此標頭的文件中。 在cpp文件中對其進行聲明將使其僅可用於此文件中的代碼。
這是因為cpp和h文件一起工作的方式。
h文件包含所有聲明,而相應的cpp文件應包含這些聲明的代碼。
請 (也供將來的讀者使用)請注意,僅使用h文件來避免看似復雜的情況是非常糟糕的做法,因為那樣的話,您將不會使用非常好的語言功能,並且會做到這一點(使用類除外) )無法將私有函數與公共函數和變量分開。
另外,還有一點需要注意: h文件是分布式的,而它們的代碼( cpp文件中的代碼則被編譯為二進制文件。因此,為了不向所有人公開您的代碼並使頭文件保持較小,您應該適當地將其拆分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.