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

洛阳免费网站建设怎么建设大淘客网站

洛阳免费网站建设,怎么建设大淘客网站,怎么做网站中英文版本,wordpress权限配置文件目的 extern "C"是经常用到的东西,面试题目也经常出现,然则,实际用时,还是经常遗忘,因此,深入的了解一下,以增强记忆。 extern "C"指令非常有用,因为C和C的近亲…

目的

extern "C"是经常用到的东西,面试题目也经常出现,然则,实际用时,还是经常遗忘,因此,深入的了解一下,以增强记忆。
extern "C"指令非常有用,因为C和C++的近亲关系。

作用

注意:extern "C"指令中的C,表示的一种编译和连接规约,而不是一种语言。C表示符合C语言的编译和连接规约的任何语言,如Fortran、assembler等。
另外,extern "C"指令仅指定编译和连接规约,但不影响语义。例如在函数声明中,指定了extern “C”,仍然要遵守C++的类型检测、参数转换规则。
综上所述,extern "C"的真实目的是实现类C和C++的混合编程。在C++源文件中的语句前面加上extern “C”,表明它按照类C的编译和连接规约来编译和连接,
而不是C++的编译的连接规约。这样在类C的代码中就可以调用C++的函数或变量等。

生成符号的不同

在C和C++中,生成函数符号的方式有所不同。
在C语言中,函数的符号是通过函数名和参数类型来生成的。如果两个函数的名字相同并且参数类型也相同,那么它们的符号就是一样的。
在C++中,函数符号的生成则更加复杂,主要是因为C++支持函数重载,也就是说,两个函数可以有相同的名字,
只要它们的参数类型或者参数数量不同。为了区分这些同名函数,
C++编译器会将函数的返回类型,函数名,参数类型,参数数量,参数顺序等因素考虑进去,生成一个独一无二的符号。

情况

上面理论讲的很清楚,下面用例子试试:

先弄一个C++的函数例子:

cppFunc.h:

#pragma once
#include <stdio.h>
void cppFunc(int num);
cppFunc.cpp:
#include "cppFunc.h"
void cppFunc(int num)
{printf("enter function cFunc num=%d\n", num);printf("exit function cFunc\n");
}

主函数:

#include <iostream>
#include "cppFunc.h"
int main()
{cppFunc(10);std::cout << "Hello World!\n";
}

运行情况:
在这里插入图片描述

符号是这样的:
在这里插入图片描述

c++调用C函数的例子
cFunc.h:

#pragma once
#include <stdio.h>
void cFunc(int num);

cFunc.c:

#include "cFunc.h"
void cFunc(int num)
{printf("enter function cFunc num=%d\n", num);printf("exit function cFunc\n");
}

主函数:

#include <iostream>
#include "cFunc.h"
//#include "cppFunc.h"
int main()
{cFunc(8);//cppFunc(10);std::cout << "Hello World!\n";
}

运行情况:
在这里插入图片描述

上面表明,C++按照C++的函数名规则去链接函数,符号为:?cFunc@@YAXH@Z 实际在OBJ中找不到。
在这里插入图片描述

从上图可知:c语言的名字就是 cFunc,所以找不到。
怎么找到呢?
主函数修改如下:

#include <iostream>
extern "C"
{
#include "cFunc.h"
}
//#include "cppFunc.h"
int main()
{cFunc(8);//cppFunc(10);std::cout << "Hello World!\n";
}

运行情况:
在这里插入图片描述

这样就找到了,这样就按照C的规则去找相应的函数。

总结

extern “C”{},解决了C与C++编译结果的混用,如下图所示:
在这里插入图片描述

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

相关文章:

  • 上海网站设计大概要多少钱适合 wordpress 图标
  • 宁波市建设工程检测协会网站10_10_设计公司网站设计
  • 东莞网站建没wordpress做管理系统
  • 南京建站平台网站打不开 ...
  • 网站模版源码市场部网页设计西安
  • 做网站需要会什么软件软件开发专业学校
  • 设计专业新手网站app界面设计总结
  • 网站与网站做外链好吗有没有教做帽子的网站
  • 做私活一个网站大概多少钱中国做跨境电商出口的网站
  • 具有价值的专业网站建设平台做网站前端需要编程基础吗
  • 浙江广发建设有限公司网站江门住房与城乡建设局官方网站
  • 建网站企业百姓畅言六安杂谈
  • 保险网站导航wordpress关键词调用
  • 自己模板做网站靖州建设局网站
  • 做网站在哪个地方买空间frontpage可以做网站吗
  • 国外刺绣图案设计网站网站建设整体设计流程
  • wordpress网站数据库seo营销策划
  • 陕西的网站建设公司自己做个网站需要几个软件
  • 可以做物理题的网站对网站的界面设计分析
  • 网站是否被kwordpress后台缺少菜单
  • 商城网站建设方案流程洛阳信息网
  • 锐酷网站建设教程网站建设开发合同模板
  • 合作建站方案制作搜索类网站
  • 企业网站建设会计分录对话弹窗在网站上浮动
  • 网站开发学哪一个好义乌网站建设多少钱
  • 想学做网站学什么编程语言html网页制作软件有哪些
  • 甘肃省住房城乡建设厅网站首页如何检查网站死链
  • 医院网站和微信公众号建设方案电子商务网站设计心得
  • 网站域名登录绿色主色调网站
  • 企业门户网站方案怎么新增网站推广