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

网站毕设wordpress get_the_content

网站毕设,wordpress get_the_content,产品图册设计公司,装修公司的选择方法前言 C支持函数重载#xff0c;C语言不支持函数重载#xff0c;它们的区别在于编译器对函数编译的实现不一样。 编译链接 要想明白这个问题#xff0c;我们首先来简单认识一下编译链接。我们平时写的C#xff0c;C代码都是需要通过编译链接生成可执行文件的。 为什么需要编…前言 C支持函数重载C语言不支持函数重载它们的区别在于编译器对函数编译的实现不一样。 编译链接 要想明白这个问题我们首先来简单认识一下编译链接。我们平时写的CC代码都是需要通过编译链接生成可执行文件的。 为什么需要编译链接因为我们写的代码CPU是不能直接识别到的需要通过编译把我们写的代码转换成汇编语言汇编语言再转换成二进制的机器语言然后把项目中的多个二进制文件链接起来生成可执行程序。 下面我们来更详细的了解一下编译链接的具体过程。 编译阶段 编译阶段分为预处理编译汇编三个阶段。 预处理 编译阶段首先要做的一件事是预编译。预处理就是在为编译阶段做铺垫。要做的工作有头文件展开、宏替换、条件编译、去掉注释等等。 头文件展开就是在源文件中把包含的相应头文件拷贝到源文件中头文件由于以及包含到源文件中了所以不会参加编译以及后续的阶段。 条件编译是指的是我们在编译的时候可以根据某些条件选择是否编译某一段代码。 编译 预处理完成之后要进行编译编译主要是检查语法正确性并转换为汇编代码。 汇编 汇编阶段把汇编代码转换为机器语言并生成符号表。符号表主要是在链接的时候发挥作用 在很多时候函数声明和定义是分离的是在2个不同的文件中这时候符号表中就有声明和定义的映射关系供在链接阶段编译器去查找。 链接阶段 把编译阶段完成后的二进制文件链接起来生成一个可执行程序。 C编译器函数名修饰规则 C语言的编译器在汇编代码中定义一个函数的时候直接是使用它的函数名。但是在C中汇编代码定义一个函数的时候是根据函数名修饰规则去定义的。 下面是在Linux环境下使用gcc、g作为编译器实现的样例。Linux下编译后生成a.out可执行文件。objdump可以查看对应的汇编代码。 C语言汇编 [rootVM-0-13-opencloudos ~]# vim test.c #include stdio.hvoid Function(int a) {printf(%d\n, a); }int main() {int a 10;Function(a);return 0; }[rootVM-0-13-opencloudos ~]# gcc test.c [rootVM-0-13-opencloudos ~]# objdump -S a.out .... 0000000000400596 Function:400596: 55 push %rbp400597: 48 89 e5 mov %rsp,%rbp40059a: 48 83 ec 10 sub $0x10,%rsp40059e: 89 7d fc mov %edi,-0x4(%rbp)4005a1: 8b 45 fc mov -0x4(%rbp),%eax4005a4: 89 c6 mov %eax,%esi4005a6: bf 78 06 40 00 mov $0x400678,%edi4005ab: b8 00 00 00 00 mov $0x0,%eax4005b0: e8 eb fe ff ff callq 4004a0 printfplt4005b5: 90 nop4005b6: c9 leaveq4005b7: c3 retq .... C汇编 [rootVM-0-13-opencloudos ~]# vim test.cpp #include stdio.hvoid Function(int a) {printf(%d\n, a); }void Function(int a, double b) {printf(%d %f\n, a, b); }int main() {int a 10;int b 10.1;Function(a);Function(a, b);return 0; }[rootVM-0-13-opencloudos ~]# g test.cpp [rootVM-0-13-opencloudos ~]# objdump -S a.out 00000000004005b6 _Z8Functioni:4005b6: 55 push %rbp4005b7: 48 89 e5 mov %rsp,%rbp4005ba: 48 83 ec 10 sub $0x10,%rsp4005be: 89 7d fc mov %edi,-0x4(%rbp)4005c1: 8b 45 fc mov -0x4(%rbp),%eax4005c4: 89 c6 mov %eax,%esi4005c6: bf d8 06 40 00 mov $0x4006d8,%edi4005cb: b8 00 00 00 00 mov $0x0,%eax4005d0: e8 eb fe ff ff callq 4004c0 printfplt4005d5: 90 nop4005d6: c9 leaveq4005d7: c3 retq00000000004005d8 _Z8Functionid:4005d8: 55 push %rbp4005d9: 48 89 e5 mov %rsp,%rbp4005dc: 48 83 ec 10 sub $0x10,%rsp4005e0: 89 7d fc mov %edi,-0x4(%rbp)4005e3: f2 0f 11 45 f0 movsd %xmm0,-0x10(%rbp)4005e8: f2 0f 10 45 f0 movsd -0x10(%rbp),%xmm04005ed: 8b 45 fc mov -0x4(%rbp),%eax4005f0: 89 c6 mov %eax,%esi4005f2: bf dc 06 40 00 mov $0x4006dc,%edi4005f7: b8 01 00 00 00 mov $0x1,%eax4005fc: e8 bf fe ff ff callq 4004c0 printfplt400601: 90 nop400602: c9 leaveq400603: c3 retq
http://www.pierceye.com/news/744052/

相关文章:

  • 东丰网站建设网络域名怎么注册
  • 行业网站模板装饰公司东莞网站建设
  • 成都政务网站建设电脑编程与网站建设
  • 描述电子商务网站建设网站开发教程H5
  • 个人做电影网站有什么风险招聘网站制作公司
  • 安徽网站推广公司网站集群建设参数
  • 个人网站做哪种能赚钱网站维护有哪些企业
  • 专题类的网站郴州全网推广公
  • 流行用什么做网站手机响应式网站
  • 绍兴网站建设 微德福如何填写网站开发验收单
  • php 创建网站开发中山如何建设网站
  • 莱芜企业建站公司申请微信公众号
  • 手机网站 html5上海网站开发怎么做
  • 精密科技东莞网站建设ppt简约大气模板
  • 一家专做特卖的网站seo推广优化方案
  • 南沙门户网站建设监理工程师成绩在建设部哪个网站查
  • 做视频网站需要什么证件wordpress从
  • 算卦网站开发京东慧采入驻条件及费用2023年
  • 网站建设好后如何提交搜索引擎公共网络建设指导书
  • 做网站最快多久DW怎么做电商网站
  • 论坛模板网站建设鞍山市信息网站
  • 微网站的定义商城小程序开发报价
  • 做一网站要什么软件wordpress support hls player
  • 青岛网站制作服务装饰设计素描
  • 物流网站公司站外调用WordPress评论
  • 免费的行情网站下载安装拍艺术照
  • 佛山网站设计多少钱兴国做网站
  • 自己可以做网站生意好做吗手机制作音乐的软件app
  • 国土政务网站建设制度下载购物app
  • 阿里云一键建站网站网站前端浏览器兼容如何做