คำถามติดแท็ก linkage


11
ทำไมเราต้องใช้ภายนอก“ C” {#include <foo.h>} ใน C ++
ทำไมเราต้องใช้: extern "C" { #include &lt;foo.h&gt; } โดยเฉพาะ: เมื่อใดที่เราควรใช้ เกิดอะไรขึ้นในคอมไพเลอร์ / ลิงเกอร์ระดับที่ต้องการให้เราใช้มัน? วิธีการรวบรวม / เชื่อมโยงนี้จะแก้ปัญหาที่เราต้องใช้มันได้อย่างไร?

1
เหตุใดตัวแปร extern แบบโลคอลในบล็อกที่แตกต่างกันจึงได้รับการเชื่อมโยงที่แตกต่างกันระหว่างคอมไพเลอร์ใน c ++
ในขณะที่ฉันกำลังตรวจสอบว่ามีการเชื่อมโยงใด บ้างที่อนุญาตให้ตัวแปรท้องถิ่นภายนอกฉันพบว่าพฤติกรรมที่แตกต่างระหว่างคอมไพเลอร์ เช่นถ้าฉันทดสอบโค้ดด้านล่าง ตามที่คุณเห็นในตัวแปรข้อคิดเห็นvarมีลิงค์ต่างกัน // foo.cpp int var = 10; // external linkage // main.cpp #include &lt;iostream&gt; static int var = 100; // internal linkage int main() { extern int var; // internal linkage std::cout &lt;&lt; var &lt;&lt; std::endl; { extern int var; // g++: external linkage , clang++: internal …
12 c++  g++  clang++  extern  linkage 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.