cost 335 ms
翻譯單元是否有效 C++? 並且是 g++ -E 的 output 的翻譯單元(對於 GCC)?

[英]Is a translation unit valid C++? And is a translation unit (for GCC) the output of g++ -E?

我確信翻譯單元是一個.cpp文件(或者,為了避免引用擴展名,一個文件,你將提供給 `g++ -c theTranslationUnit.cpp -o 不管什么。o)一旦你將宏替換為它,復制並粘貼#include (遞歸),並刪除評論。 換句話說,我認為它是“獲取 C++ 文件並處理所有#並刪除其中 ...

如果前者只提供后者定義的聲明,我是否應該在相關的 cpp 文件中包含 header ?

[英]Is there any reason I should include a header in the associated cpp file if the former only provides declarations the latter defines?

考慮具有以下內容的foo.cpp文件#include "foo.hpp" int foo() { return 7; } 及其關聯的 header#pragma once int foo(); 顯然需要后者來了解以下main function 的存在foo :#include < ...

多次#included 保護的 header 文件將如何在不同的翻譯單元內?

[英]How a multiple times #included guarded header file will be inside different translation units?

我知道#inclusion 通常被描述為文本復制粘貼預處理器指令。 現在,如果 header 被 #include 保護或 #pragma 一次,那么我們如何描述經過第一個翻譯單元到 #include 所說的 header 之后實際發生的事情? ...

一個模塊中有多少個翻譯單元?

[英]How many translation units in one module?

具有多個源文件 (.cpp) 的模塊是否具有一個或多個翻譯單元? 我的理解是每個單獨的源文件(.cpp)都將是它自己的翻譯單元,除非它被包含在內,並且#pragma onced(我猜這是一種弊端),但我不知道這是如何在模塊化程序中完成的. 如果有什么不同,那我對Visual Studio C++開 ...

包含源文件時的翻譯單元?

[英]Translation unit when including a source file?

據我所知,翻譯單元由單個實現 file.cpp/.c 及其所有包含的標頭代碼組成。 當在另一個.cpp 文件中包含 a.cpp 文件,或在另一個.cpp 文件中包含的 ah 文件中包含 a.cpp 文件時,我們這里的翻譯單元是什么? ...

header 文件中的“#pragma GCC system_header”是否擴展到另一個源或包含它的 header 文件?

[英]Does `#pragma GCC system_header` in a header file extend into another source or header file that includes it?

我需要禁用某個 header 文件中的所有警告,並且僅禁用該文件。 我的編譯器版本是g++-4.8 。 我必須使用那個編譯器。 我查看了該編譯器的文檔: g++-4.8 documentation support for System-Headers 這個已經寫完了: 當 GCC 正在處理系統 h ...

處理頭文件和源文件的最佳方法

[英]Best Way to Deal With Headers and Source Files

我總是這樣安排我的 C++ 頭文件和源文件: 程序.h 程序.cpp 主文件 但我最近發現以其他方式排列它們很常見: 程序.h 程序.cpp 主文件 我發現第一種方法更方便,那么有什么理由讓我更喜歡第二種方法而不是第一種方法? ...

不同 TU 中類模板全特化的成員函數定義

[英]Definitions of member fuction of class template full specialization in separate TUs

給定一個類模板,編譯需要很長時間。 在開發和調試期間,我想通過將成員函數的定義分離到單獨的翻譯單元來減少編譯時間。 只是為了完全專業化(這也是為了減少編譯時間)。 是否可以在 C++ 中通過將類模板完全特化的成員函數的定義放入單獨的 TU 來分離它們? template<> voi ...

是否可以對所有翻譯單元進行定義?

[英]Can a define be made across all translation units?

是否可以跨所有翻譯單元進行 #define 或類似的預處理器定義? 標頭實現對於非常小的庫很有用,因為所有代碼都可以包含和分布在具有以下結構的單個標頭中: 然而,這種結構要求用戶在頭文件只包含在他們的一個翻譯單元中之前定義IMPLEMENT_LIBRARY ,這意味着它不能放在用戶的頭文件中, ...

Class 方法內部鏈接

[英]Class methods internal linkage

在 C 中,我可以在 header 文件中聲明結構和一些公共函數,而在源文件中可以將一些“私有”函數聲明為 static。 例如: foo.htypedef struct Foo { ... } Foo; void func1(Foo *foo); foo.c#include "foo.h" ...

我應該聲明我的 function 模板專業化還是足夠定義它們?

[英]Should I declare my function template specializations or is defining them enough?

我有一些可以檢查的課程。 實現這一點的代碼在 header 文件中聲明了一個 function 模板,並將其專門用於不同的源文件: 這段代碼是這樣使用的: 這工作得很好。 當我添加另一個我可以檢查的 class Class3時,我不需要觸摸 header 文件,因為它定義了一個非常寬的接口。 如果 ...

c ++ 17內聯+ thread_local vs thread_local

[英]c++17 inline + thread_local vs thread_local

我想知道以下兩個聲明之間的區別是什么,如果兩者都寫在一個頭文件中: 如 C++17 中所述,向變量添加內聯會強制所有翻譯單元看到該變量的相同地址。 這是否意味着obj2可以在不同的翻譯單元中獲得不同的地址值? 強調我們應該使用obj1而不是obj2什么? ...

在頭文件中定義的靜態對象和在 cpp 文件中定義的靜態對象有什么區別?

[英]What is the difference between static objects defined in a header file and static objects defined in a cpp file?

假設我有一個頭文件,並假設復制宏已處理:f1.h: 在包含此標頭的任何地方,翻譯單元都將擁有自己的 obj 副本。 那么,如果 a.cpp、b.cpp 和 ch 包含這個頭文件,obj 將被實例化 3 次? 現在,如果我有以下內容: f2.h: f2.cpp: 在這種情況下,我的 ...

我可以在不同的TU中提供相同的功能定義嗎?

[英]Could I provide same function definition in different TUs

我正在閱讀內部和外部鏈接,我發現默認情況下一個函數有一個外部鏈接。 所以我在想是否可以在頭文件管理器中聲明一個函數,並在不同的翻譯單元中提供它的多個定義。 到目前為止,我確實在頭文件中聲明了一個功能 並在兩個文件中提供2個定義,每個文件都包含在一個匿名命名空間中: 但 ...

翻譯單位數與cpp文件數

[英]Number of translation units vs number of cpp files

我們有2個案例(場景)。 在每種情況下,我們都有2個文件: main.cpp和file.cpp 情況1 main.cpp: #include <iostream> #include "file.cpp" // this line is what matter ...

在單例模式中,什么使實例獨一無二?

[英]In singleton pattern what makes instance unique?

在實踐中,使用簡單的靜態函數創建單例模式,該函數返回一個本地靜態變量。 只要實例是靜態的,它就會返回在第一次函數調用期間定義一次的相同變量。 對我來說令人困惑的部分是,如果我在一個頭文件中聲明具有靜態局部變量的常規靜態函數,並且當它們調用該函數時將該頭部包含在兩個不同的轉換單元中,則將函 ...

有沒有一種方法可以使鏈接程序從庫中提取目標文件的一部分進行鏈接?

[英]Is there a way to have a linker pull part of an object file from a library for linking?

我有一個包含成千上萬個C文件,許多庫和數十個程序的項目,以鏈接並加快編譯速度,我正在將C文件合並為包含多個C文件的翻譯單元。 有時將其稱為單一編譯單元,單一翻譯單元或統一構建。 我將這些翻譯單元中的多個編譯成不同的庫,並且這些庫以前是通過分別編譯每個C文件來創建的。 例如: ...


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