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++ ...)不