原文:不要在.h文件中定義變量

今天在頭文件.h中初始化了一個數組和函數,在編譯的時候提示這個數組和函數重新定義了,檢查后發現,犯了一個致命的錯誤,在頭文件中定義變量。。。 以下引用別人的一篇說明,警示自己。 C語言作為一種結構化的程序設計語言,在模塊的划分上主要依據功能,C語言模塊化程序設計需理解如下概念: 模塊即是一個.c文件和一個.h文件的結合,頭文件 .h 中是對於該模塊接口的聲明 某模塊提供給其它模塊調用的外部函數及數 ...

2018-11-15 13:53 0 1711 推薦指數:

查看詳情

C++靜態成員變量要在類外部再定義或初始化的原因

C++靜態成員變量要在類外部再定義或初始化,否則會產生錯誤。 class A { public: static int a; }; int A::a=0;   為什么要在類的外部進行定義的原因: 1. 在類,只是聲明了靜態變量,並沒有定義。 2. 聲明只是表明了變量 ...

Tue Sep 25 00:04:00 CST 2018 0 3338
C++靜態成員變量要在類外部再定義或初始化的原因

我們知道C++類的靜態成員變量是需要初始化的,但為什么要初始化呢。其實這句話“靜態成員變量是需要初始化的”是有一定問題的,應該說“靜態成員變量需要定義”才是准確的,而不是初始化。兩者的區別在於:初始化是賦一個初始值,而定義是分配內存。靜態成員變量在類僅僅是聲明,沒有定義,所以要在類的外面定義 ...

Sat May 09 04:33:00 CST 2020 0 1797
在頭文件定義全局變量

讓我們先來看一個例子。 在下面的工程,共有三個文件:main.cpp、func.cpp、var.h。 其中var.h定義了一個int型的變量: 在func定義了一個函數,返回剛才定義的var變量: 最后是main.c,在main函數調用func函數 ...

Mon Apr 08 08:13:00 CST 2013 0 4669
關於.c和.h定義變量的問題

最初調試的時候是因為有個錯誤在wavplay.h文件 於是我跳到了recorderl.h:從圖中看到引用了main.h 出現這個問題的具體原因還是不太清楚: 不過我任務是因為: wavplay.h定義了 __WaveHeader 變量 ...

Tue Apr 10 17:57:00 CST 2018 0 1080
能不能在頭文件定義全局變量

編譯器驅動程序 大多數編譯系統提供編譯器驅動程序(compiler driver),它代表用戶在需要時調用語言預處理器、編譯器、匯編器、和鏈接器。 我們所常說的 “編譯生成可執行文件” 實際包括以下過程: 預處理器 (某些編譯系統,預處理器被集成到 編譯器 ) 處理預處理指令 ...

Mon Jan 25 22:33:00 CST 2021 0 365
c語言頭文件定義全局變量的問題

問題是這么開始的: 最近在看一個PHP的擴展源碼,編譯的時候的遇到一個問題: 仔細看了一下源碼,發現在頭文件 出現了全局變量定義。 簡化一下后,可以這么理解: 這兩個c文件能否通過編譯?想必有點經驗的必會說 不會,重定義了。 那么是否真的如此?並不這么簡單 ...

Fri Aug 07 04:15:00 CST 2015 0 9110
c語言頭文件定義全局變量的問題

c語言頭文件定義全局變量的問題 (轉http://www.cnblogs.com/Sorean/) 先說一下,全局變量只能定義在 函數里面,任意函數,其他函數在使用的時候用extern聲明。千萬不要往頭文件里面寫定義(int aa)。 即使是寫,也只寫聲明 即可 extern int aa ...

Tue Oct 11 22:20:00 CST 2016 0 3350
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM