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

配资网站建设优化大师有必要安装吗

配资网站建设,优化大师有必要安装吗,国外做任务网站有哪些方面,东莞网站建设的价格一、概念 C 允许在同一作用域中存在几个功能类似的同名函数,但这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同 int Add(int left, int right) {return leftright; }double Add(double left, double right) {return leftright; }long Add(long left, l…

一、概念

C++ 允许在同一作用域中存在几个功能类似的同名函数,但这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同

int Add(int left, int right)
{return left+right;
}double Add(double left, double right)
{return left+right;
}long Add(long left, long right)
{return left+right;
}int main()
{Add(10, 20);Add(10.0, 20.0);Add(10L, 20L);return 0;
}

二、名字修饰(Name Mangling) - 导致 C 和 C++ 代码不能直接相互调用

C/C++ 代码要运行起来,需要经历预处理、编译、汇编、链接这四个阶段,而 Name Mangling 是一种在编译期间将函数名重新修饰的机制,简单来说,就是编译器为了区分各个函数,通过 Name Mangling 保证在底层的全局唯一性

C 的名字修饰规则非常简单,只是在函数名前添加了下划线,这也是 C 不支持函数重载的原因

/** test.c*/
int Add(int left, int right);int main()
{Add(1, 2);  // 编译器链接报错:error LNK2019: 无法解析的外部符号 _Add,该符号在函数 _main 中被引用return 0;
}

由于 C++ 要支持函数重载、命名空间、类等,使得其名字修饰规则比较复杂,不同编译器在底层的实现方式可能会有差异

int Add(int left, int right);
double Add(double left, double right);int main()
{Add(1, 2);      // 编译器链接报错:error LNK2019: 无法解析的外部符号 "int __cdecl Add(int,int)" (?Add@@YAHHH@Z)Add(1.0, 2.0);  // 编译器链接报错:error LNK2019: 无法解析的外部符号 "double cdecl Add(double,double)" (?Add@@YANNN@Z)return 0;
}
函数签名修饰后名称
int func(int)?func@@YAHH@Z
float func(float)?func@@YAMM@Z
int C::func(int)?func@C@@AAEHH@Z
int C::C2::func(int)?func@C2@C@@AAEHH@Z
int N::func(int)?func@N@@YAHH@Z
int N::C::func(int)?func@C@N@@AAEHH@Z

三、extern “C” - 解决 C 和 C++ 代码间相互调用问题

有时候,C++ 工程中需要将某些函数按照 C 规则进行编译,在函数前加 extern “C”,意思是告诉编译器,将该函数按照 C 规则进行编译

extern "C" int Add(int left, int right);int main()
{Add(1,2);  // 链接时报错:error LNK2019: 无法解析的外部符号_Add,该符号在函数 _main 中被引用return 0;
}

C、C++ 混合调用

http://www.yayakq.cn/news/385515/

相关文章:

  • 福州做网站的公司有哪些海淀商城网站建设
  • 网站建设网址导航网电子商务网站怎么备案
  • 企业门户网站内容建设手机微信网站
  • 网站文章多久收录汕头市澄海区建设局网站
  • 大二学生做网站难吗百度账号注册平台
  • 网站建设系统平台wordpress如何访问后台页面
  • 乐清做网站建设公司哪家好小程序免费制作平台登录
  • 官方网站建设成果网络营销的概念和特点是什么
  • 北票市建设工程安全管理站网站在网站接入银联怎么做
  • 三门峡市建设局官方网站佛山建站网站模板
  • 网站开发的现状手机怎么建立网站
  • 基础展示营销型型网站网站定制开发北京
  • 物流门户网站源码做外贸到那个网站
  • 乐器销售网站模板wordpress 移动端模板下载地址
  • 网站建设捌金手指下拉十六wordpress小程序调用
  • 胶州网站优化价格C 做的窗体怎么变成网站
  • 济南网站建设服务哈尔滨网站建设推荐
  • 网站网页翻页设计网站特效怎么做自适应
  • 苏州建站公司认准苏州聚尚网络网络域名地址
  • 广州网站建设怎样做陵县网站建设
  • 网站 备案怎么给网站做链接屏蔽
  • 用帝国做的网站广告设计好吗
  • 长春网站建设开发的有哪些给帅哥做奴视频网站地址
  • 网站建设公司业务员前端自己做博客网站
  • 深圳建设厅网站沙洋网站定制
  • 做网站项目团队口号石家庄做网站建设
  • 给一个公司做网站维护建盏哪家好
  • 西安手机网站制作网站开发面试题
  • 自己设置网站怎么做承德信息网络有限公司
  • 平谷微网站建设班级网站建设图片