簡體   English   中英

包括.cpp而不是標題(.h)

[英]Include .cpp instead of header(.h)

在某些情況下,我們包含.cpp文件而不是標准頭文件(.h),例如:

#include "example.cpp"

代替

#include "example.h"

它似乎有用,但是這樣安全還是我應該避免它?

編譯時間怎么樣?

這是懶惰的編碼。 使用頭文件。 是的,它們可以增加編譯時間,但它們意味着您可以輕松地重新實現代碼塊,或者更好的是,其他開發人員可以隨時使用。 頭文件用作C/C++代碼的模板。 丟棄或忽略它是一個壞主意。

我同意Kerrek SB的觀點。

我這樣做了一次。 我正在構建一個優秀的,廣泛使用的壓縮庫,需要為8位圖像和12位圖像單獨構建。 我可以想出的最簡單的方法是將它放到構建系統中(過度簡化一點)有兩個主.cpp文件,一個為8位構建設置#defines,另一個為12位構建。 然后,主.cpp文件#included壓縮庫的源文件。

如果您足夠了解規則以了解其原因以及為什么它可能不適用於您的情況,那么不遵循一般規則是可以的。 (但這些案件應該很少見。)

#include "impl.cpp"有合法用途:

  1. 測試訪問靜態/ etc變量

  2. 如果c ++模板機制證明不足(罕見)這樣的臨時模板

    #define MACRO (...)

    #include "impl.cpp" // uses MACRO

請注意, #include "impl.cpp"可能不安全,因為相同的文件包含在稍后鏈接在一起的單獨編譯單元中。

我之前使用過它並沒有問題,但我不能確保這是安全的。 有時這是我唯一的選擇所以我用它,否則我會使用.h文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM