linkage

    1熱度

    1回答

    我有一個TU,其全局函數不會被任何其他TU使用。我讀到,宣佈他們爲static給他們內部聯繫,從優化的角度來看這是很好的。但我想知道我應該使用它們的正確情況是什麼。當我知道他們不會在程序中的任何其他地方使用時,我是否應該給全局函數/變量內部鏈接始終總是?

    1熱度

    1回答

    假設我有2頁C的src的文件,A1.C,A2.C,這些都是內容: A1.C int x; int main(){ void f(void); x = 5; f(); printf("%d", x); return 0; } A2.C int x; void f() { x = 4; } 即使缺少「extern」安全字,鏈接程序也不

    1熱度

    1回答

    早上好! 我在C++ 11中有正則表達式的問題。 我的Ubuntu 14.04輕和這個版本的編譯器: g++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2 Copyright (C) 2013 Free Software Foundation, Inc. 我使用這三個命令安裝升壓今天。 sudo apt-get install libboost-all-dev sudo a

    2熱度

    3回答

    我在QNX 6.5.0中構建了boost 1.57.0。沒有生成錯誤。但是一些庫鏈接到libboost_system.so指定相對路徑。我保存了編譯日誌。下面是boost_thread聯動步: "QCC_gpp" -o "bin.v2/libs/thread/build/qcc/release/threading-multi/libboost_thread.so.1.57.0" -shared "

    2熱度

    1回答

    這是合法的嗎?我想導出一個C函數,但在內部,該函數將使用C++類。 extern "C" BOOL /*BOOL==int*/ Func() { return someclass::getinstance()->Func(); // this is just bool tho }

    1熱度

    2回答

    我嘗試過不同的網站,但我不明白。你能用簡單的英語解釋嗎?

    0熱度

    1回答

    我想在我的MSI安裝程序中包含VC++ Redistributable 2013先決條件安裝。 我已經修改了Fragment寫this guy執行註冊表檢查後,悄悄地下載和安裝,選擇vcredist_x64.exe包(文件 - MyWixProject/vcredist.wixobj): <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="htt

    2熱度

    1回答

    類的靜態成員被編譯爲類作用域的全局變量。編譯的const靜態成員和靜態constexpr成員如何? 編譯器是否爲每個.o文件創建了此靜態成員的副本,否則它就完成了嗎?

    7熱度

    3回答

    鑑於以下聲明(重點介紹)在§3.5/ 4和§7.3.1.1/ 1的註釋[94]中,我希望有一個在具有外部鏈接的未命名名稱空間中聲明的實體的單個示例。 §3.5/ 4 具名命名空間或具名命名空間內直接或間接地聲明 一個命名空間具有內部連接。所有其他名稱空間 都有外部鏈接。 尚未以上 給定的內部鍵的具有名稱命名空間範圍具有相同的連鎖作爲包封 命名空間,如果它是 變量的名字;或 一個函數;或 一個命名的

    5熱度

    1回答

    我可能有點晚了就知道這個標準說法,看到SO answer後: [C++ 11:7.5/1] 兩個函數類型用不同的語言的聯繫是不同的類型,即使如果他們在其他方面相同。 這意味着,給定: void f1(); extern "C" void f2(); decltype(f1)是不一樣的decltype(f2) 一個原因,我不知道它的到現在爲止是主要的編譯器(例如克++,鐺,vC++ ...)不