簡體   English   中英

翻譯單位數與cpp文件數

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

我們有2個案例(場景)。 在每種情況下,我們都有2個文件: main.cppfile.cpp

情況1

  • main.cpp:
#include <iostream>

#include "file.cpp"  // this line is what matters

int main () {...}

我通過以下方式進行編譯和運行:

g++ main.cpp -o main && ./main

情況二

  • main.cpp:
#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.

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