linkage

    1熱度

    1回答

    我需要實現一個Assembly模塊來讀取JCL中通知的任何文件(F,FB,V,VB)。這個模塊在我的COBOL程序中被調用。 我已經設法實現了打開,讀取和關閉功能。 鍵聯是這樣的: 01 LNK-MOD. 05 LNK-MOD-OPTION PIC X(01) VALUE SPACE. 05 LNK-MOD-STATUS PIC X(01) VALUE SPACE.

    7熱度

    2回答

    [basic.link]/6(我emphasiss): 塊範圍聲明的函數的名稱和塊範圍extern聲明聲明的變量名具有聯動。 ... static void f(); static int i = 0; void g() { extern void f(); // internal linkage int i; // #2 i has no linkage {

    3熱度

    1回答

    從cppreference.com提取: 將表示對象,參考,功能,類型,模板, 命名空間,或值的名稱,可以具有聯動。 什麼是「價值的名稱」?任何人都可以提供一個例子,其中一個值的名稱不是一個對象的名稱?對這個東西密切

    9熱度

    1回答

    從Storage-class specifiers: 存儲類說明確定他們宣稱的名字兩個獨立的特性:存儲時間和聯動。 因此,例如,當static關鍵字的全局變量和函數使用(誰是存儲類是靜態反正)它設置了聯動,內部聯動。當用於函數內部的變量(沒有鏈接)時,它將它們的存儲類設置爲靜態。 我的問題是:爲什麼兩個事物使用相同的說明符?

    0熱度

    1回答

    我有一些InDesign插件的遺留代碼,我正在嘗試爲使用C++ 11支持的XCode編譯器的InDesign新版本進行編譯。 有一個頭文件AdWrksSession.h,其中包含一個具有C鏈接的類對象,如下所示。 作爲extern對象/變量的聲明所說: extern "C" CAdWrksSession gAdWrksSession; 和cpp文件AdWrksSession.cpp包含具有相同

    0熱度

    1回答

    我想在Linux上將我的libtest.cpp源代碼構建爲靜態/動態庫(libtest.so)。我想分享這個.so,而其他人可以用它們的編譯器(不同版本)鏈接到它。我想問一下如何實現它? 據我所知,英特爾MKL是一個類似的庫,我們下載.h和.so,然後使用我們的編譯器鏈接到它。 最好的問候,

    3熱度

    1回答

    如果我有一個頭foo.h包含 #ifndef FOO_H_ #define FOO_H_ namespace foo { constexpr std::string_view kSomeString = "blah"; } #endif // FOO_H_ 則是安全的從多箇中包括foo.h在一個程序中.cc文件,無論他們做什麼符號爲kSomeString,還是有一些可能導致ODR

    0熱度

    1回答

    比方說,我有一個C以下設置++程序,在全球/命名空間範圍(以外的任何塊): 情況1: a.cpp extern const int i=5; b.cpp extern const int i; 有兩種方式,在我的腦海裏,編譯器可以看到這一點。一個是,真正的聲明是在b.cpp中,而a.cpp只有一個前向聲明和初始化。 (因爲我們知道,對於特定的外部常量,在聲明時不需要初始化)編譯器可能生成的

    0熱度

    1回答

    我正在編譯一個靜態庫,它利用了一些內聯彙編代碼。 我注意到,當我使用標籤爲jmp指令: int foo(){ asm volatile ( "mov 0x60(%r8),%r11d\n\t" "jmp *S_401a70\n\t" ... "S_401a70: xor %rax, %rax\n\t" ... ) } 和編譯代碼到一個靜態

    0熱度

    1回答

    在C中,使用在多個翻譯單位可變的變量,我們需要 確保變量有外部鏈接。 同樣,在C++中,如果我想要在名稱空間中定義的變量用於多個翻譯單元,該變量是否必須具有外部 鏈接?我應該如何正確使用名稱空間和連接? 在命名空間中定義的變量的默認鏈接是什麼? 謝謝。