[英]Number of translation units vs number of cpp files
我們有2個案例(場景)。 在每種情況下,我們都有2個文件: main.cpp
和file.cpp
情況1
#include <iostream>
#include "file.cpp" // this line is what matters
int main () {...}
我通過以下方式進行編譯和運行:
g++ main.cpp -o main && ./main
情況二
#include <iostream>
void filefunc(int); // function declaration from file.cpp
int main () {...}
我通過以下方式進行編譯和運行:
g++ -c main.cpp
g++ -c file.cpp
g++ main.o file.o -o main && ./main
在每種情況下,我們有多少個translation units
? 是嗎 :
每次將源代碼文件傳遞給g++
,即一個翻譯單元。 根據定義。
文件擴展名實際上是無關緊要的,但是按照慣例,我們為傳遞給編譯器的內容而不是#include
保留“ .cpp”。
在第一種情況下,你的不明智的包容.cpp
在一個翻譯單元,將在代碼審查迷惑你的同胞程序員和原因拒絕文件的結果。
在第二種情況下,您有兩個翻譯單元。
這次,最終結果(可執行文件)是相同的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.