草庐IT

static-libraries

全部标签

c++ - 关于带有函数和数据的static关键字的问题

我有几个关于C++中的static关键字的问题(可能还有其他语言。)将函数声明为静态的目的是什么?voidstaticfoo(intaNumber){...}静态内联函数怎么样?voidstaticinlinefoo(intaNumber){...}在函数中使用static关键字有什么好处吗?这些好处是否也适用于类函数?我意识到某些数据类型(如结构和数组)在使用较旧的编译器进行编译时必须是静态的,但是在使用新的ANSI-C++编译器(如MSVC++2008)时有什么意义吗?我知道在循环内使用静态变量可以通过将数据保存在内存中而不是在每次循环迭代时重新分配内存来节省时间,但是当变量只声明

c++ - 如何在 Unix TeamCity 构建代理上设置环境变量 PATH 和 LD_LIBRARY_PATH?

我使用TeamCity在Unix(Solaris)上构建C++。TeamCity调用make,在我的makefile中我需要调用svn。为此,我需要修改PATH和LD_LIBRARY_PATH。我可以在makefile中设置这些,但位置因服务器而异。有谁知道为每个TeamCity构建代理设置这些的方法,例如通过编辑conf/buildAgent.properties?我可以在~/.login等中为TeamCity构建帐户设置它们,但我不希望这样做,因为它是一个共享帐户。-谢谢,巴尼 最佳答案 如您所料,您可以在conf/buildA

c++ - 没有堆的 static const std::vector<char> 初始化?

假设我想要一个无符号字符的std::vector。它是用初始化列表(这是C++11)初始化的,永远不会改变。我想避免任何堆分配,即使在启动时也是如此,并让整个vector像const字符串一样存在于数据段中。那可能吗?IE:staticconstvectorv{0x1,0x2,0x3,0x0,0x5};(这是一个有点学术性的问题;我知道为此使用C数组并不难。) 最佳答案 为什么不直接使用std::array为此?staticconststd::arrayv{0x1,0x2,0x3,0x0,0x5};这避免了任何动态分配,因为std:

c++ - 用于遍历继承层次结构的 Static_cast 与 dynamic_cast

我看到一本关于C++的书提到使用静态转换在继承层次结构中导航比使用动态转换更有效。例子:#include#includeusingnamespacestd;classShape{public:virtual~Shape(){};};classCircle:publicShape{};classSquare:publicShape{};classOther{};intmain(){Circlec;Shape*s=&c;//Upcast:normalandOK//Moreexplicitbutunnecessary:s=static_cast(&c);//(Sinceupcastingis

c++ - 不寻常的 static_cast 语法

我设法追踪到以下表达式的错误:foo(static_cast(a,b));//Executesspecialisation1右括号位置错误。正确的说法应该是:foo(static_cast(a),b);//Executesspecialisation2我从未见过static_cast与形式(a,b)一起使用,也从未在任何地方见过它的描述。这是什么意思?前面的语句返回b。 最佳答案 static_cast不是一个函数,它是一个关键字,所以a,b中的逗号不是参数分隔符;它是commaoperator.它评估a但丢弃结果。表达式的计算结果

checking OpenSSL library version... configure: error: OpenSSL >= 1.1.1 required (have “100020bf 解决方案

  大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。  本文主要介绍了checkingOpenSSLlibraryversion…configure:error:OpenSSL>=1.1.1required(have“100020bf(OpenSSL1.0.2k-fips26Jan2017)”)解决方案,

c++ - 为什么 static_cast 在逻辑上应该出于安全目的拒绝它们或者 static_cast 与安全无关时允许向下转换?

在下面的示例中,编译器接受static_cast向下转换,导致未定义的行为,而我认为static_cast完全是为了安全(C风格转换无法提供).#includeclassBase{public:intx=10;};classDerived1:publicBase{public:inty=20;};classDerived2:publicBase{public:intz=30;intw=40;};intmain(){Derived1d1;Base*bp1=static_cast(&d1);Derived2*dp1=static_cast(bp1);std::coutzw

c++ - 为什么这个 static_cast 是不允许的?

我有一个A类对象,我想将其分配到自定义堆栈对象上。为此,我只需将堆栈指针移动与对象大小相同的字节数并返回其先前的值:classA:publicB{};//Bisfromaprecompiledlibraryclassstack{public:stack(void):_top(&_storage[0]){}templateinlineT*push(void){T*ptr=static_cast(_top);_top+=sizeof(T);returnptr;}//...private:char_storage[1024];char*_top;};stack_stack;intmain(i

OpenSSL:configure: error: OpenSSL library not found解决方案

  大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。  本文主要介绍了OpenSSL:configure:error:OpenSSLlibrarynotfound解决方案,希望能对使用openssl的同学们有所帮助。文章目录1.问题描述2.解决方案1.问题描述  今天在安装openssh时,当运行完con

c++ - 在 C++ 中声明 "static"变量时, "global"到底是什么意思?

这是对previousquestionofmine范围的扩展.“static”到底是什么,如何使用,在处理C++时使用“static”的目的是什么?谢谢。 最佳答案 这意味着该变量是翻译单元的本地变量(简单地说,是单个源文件),无法从外部访问。static的这种使用实际上在当前的C++标准中已被弃用-相反,您应该使用匿名namespace:staticintx=0;应该是:namespace{intx=0;} 关于c++-在C++中声明"static"变量时,"global"到底是什么意