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++中,如果我想要在名称空间中定义的变量用于多个翻译单元,该变量是否必须具有外部 链接?我应该如何正确使用名称空间和连接? 在命名空间中定义的变量的默认链接是什么? 谢谢。