当前位置: 首页 > wzjs >正文

找工作哪个网站好58同城营销渠道有哪些

找工作哪个网站好58同城,营销渠道有哪些,网站如何进行备案,火影忍者网页设计总结目录 错误复现原因解决方案inlinestatic 扩展参考 错误复现 现在有一个头文件 duplicate_define.h 和两个源文件 duplicate_define_1.cpp 和 duplicate_define_2.cpp。 两个源文件都引入了头文件 duplicate_define.h,且在各自的函数中调用了定义在头文件中的全局函…

目录

  • 错误复现
  • 原因
  • 解决方案
    • inline
    • static
  • 扩展
  • 参考

错误复现

现在有一个头文件 duplicate_define.h 和两个源文件 duplicate_define_1.cppduplicate_define_2.cpp

两个源文件都引入了头文件 duplicate_define.h,且在各自的函数中调用了定义在头文件中的全局函数 duplicateFunction()

头文件中添加了 #pragma once 来方式头文件重复包含。
在这里插入图片描述
现在如果进行编译链接操作,会出现报错,我们以 vs 为例看一下具体的报错内容
在这里插入图片描述

原因

工程在编译时,每个编译单元(简单来说就是源文件以及引入的头文件构成了编译单元)都会引入头文件,也就是说 duplicate_define_1.cppduplicate_define_2.cpp 都在各自组成的编译单元中,引入(复制一份)了头文件 duplicate_define.h

这导致每个编译单元都定义了相同的函数,也就是位于头文件中的 duplicateFunction(),而在链接时就会发现重复的函数。

解决方案

inline

inline 关键字赋予了函数“允许重复定义”的特性。在链接阶段,链接器从重复的 inline 函数中选择一个,而忽略其他副本。
在这里插入图片描述
当头文件中的函数定义为 inline 后,可通过编译。

static

static 关键字会改变函数和变量的链接属性,默认情况下全局变量和函数是外部链接,也就是它们可以被其他编译单元使用。

但一个添加了 static 的函数或变量只在它定义的编译单元中可见,这样,每个包含类似上面头文件的源文件都独立拥有 duplicateFunction(),在链接时互不冲突。

但正是因为独立拥有,所以浪费了空间。

扩展

如果在公共头文件中定义类成员函数,为什么这个类成员函数在其他多个 cpp 中被调用时不会出现上述重复定义的问题呢?

答案很简单,因为类成员函数隐含就是内联的。

参考

  1. Header file contains function body, will lead to duplicated definition?
  2. 链接器工具错误 LNK2005
http://www.dtcms.com/wzjs/360145.html

相关文章:

  • 做决定的网站优化大师最新版本
  • 虚拟主机与云服务器的区别长沙seo网络公司
  • 哪个网站可以做头像的潍坊seo关键词排名
  • 商务网站开发设计结论客户关系管理
  • 权威的南通网站建设建设官网的网站首页
  • 做阿里巴巴网站可以贷款吗企业如何进行品牌推广
  • 本科专业建设网站优化师是干嘛的
  • 安徽建设工程信息网中项网手机seo排名软件
  • 网站建设应该考虑哪些方面企业推广视频
  • 中国人民解放军空军合肥百度关键词优化
  • 自己创建网站怎么得流量钱如何制作网站教程
  • 常用wap网站开发工具 手机网站制成都公司网站seo
  • 如何建设vr网站百度优化插件
  • wordpress 多个站点百度发广告需要多少钱
  • 开家网站建设培训怎么接广告赚钱
  • 成都十大广告公司春哥seo博客
  • 搭建手机网站广州头条今日头条新闻
  • wordpress tdk汕头seo外包公司
  • 家居公司网站建设方案ppt百度客户端登录
  • 网站开发app开发北京seo人员
  • 最新网站建设语言seo实战培训
  • 国外网站做盗版上海网站排名seo公司
  • 浙江省关于加强新闻网站建设免费网站模板库
  • 网站建设 方案书广州:推动优化防控措施落地
  • 西宁网站制作哪家好seo用什么论坛引流
  • 合肥企业做网站爱用建站官网
  • phpcms动态网站模板广东河源最新疫情
  • 网站建设怎么插入gif中国十大营销策划机构
  • 爱主题 wordpressseo关键词分类
  • 企业公司官网网站windows11优化大师