返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >处理C++时的注意事宜有哪些
  • 730
分享到

处理C++时的注意事宜有哪些

2023-06-17 17:06:28 730人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关处理c++时的注意事宜有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的

这期内容当中小编将会给大家带来有关处理c++时的注意事宜有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加入extern "C"{和}处理其中的代码。

#ifdef __cplusplus   extern "C" {   #endif   //一段代码   #ifdef __cplusplus   }   #endif

要明白为何使用extern "C++",还得从cpp中对函数的重载处理开始说起。在C++中,为了支持重载机制,在编译生成的汇编码中,要对函数的名字进行一些处理,加入比如函数的返回类型等等.而在C++中,只是简单的函数名字而已,不会加入其他的信息.也就是说:C++和C对产生的函数名字的处理是不一样的.

比如下面的一段简单的函数,我们看看加入和不加入extern "C++"产生的汇编代码都有哪些变化:

int f(void)   {   return 1;   }

在加入extern "C"的时候产生的汇编代码是:

 .file "test.cxx"   .text   .align 2   .globl _f   .def _f; .scl 2; .type 32; .endef   _f:   pushl %ebp   movl %esp, %ebp   movl $1, %eax   popl %ebp   ret

两段汇编代码同样都是使用GCc -S命令产生的,所有的地方都是一样的,唯独是产生的函数名,一个是_f,一个是__Z1fv。明白了加入与不加入extern "C"之后对函数名称产生的影响,我们继续我们的讨论:为什么需要使用extern "C"呢?

C++之父在设计C++之时,考虑到当时已经存在了大量的C++代码,为了支持原来的C++代码和已经写好C++库,需要在C++中尽可能的支持C++,而extern "C++"就是其中的一个策略。试想这样的情况:一个库文件已经用C++写好了而且运行得很良好。

这个时候我们需要使用这个库文件,但是我们需要使用C++来写这个新的代码。如果这个代码使用的是C++的方式链接这个C库文件的话,那么就会出现链接错误.我们来看一段代码。

明白了加入与不加入extern "C++"之后对函数名称产生的影响,我们继续我们的讨论:为什么需要使用extern "C++"呢?C++之父在设计C++之时,考虑到当时已经存在了大量的C代码,为了支持原来的C++代码和已经写好C++库,需要在C++中尽可能的支持C++,而extern "C++"就是其中的一个策略。

试想这样的情况:一个库文件已经用C++写好了而且运行得很良好,这个时候我们需要使用这个库文件,但是我们需要使用C++来写这个新的代码。如果这个代码使用的是C++的方式链接这个C++库文件的话,那么就会出现链接错误.我们来看一段代码:首先,我们使用C的处理方式来写一个函数。

上述就是小编为大家分享的处理C++时的注意事宜有哪些了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网其他教程频道。

--结束END--

本文标题: 处理C++时的注意事宜有哪些

本文链接: https://lsjlt.com/news/291084.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 处理C++时的注意事宜有哪些
    这期内容当中小编将会给大家带来有关处理C++时的注意事宜有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。这样的代码到底是什么意思呢首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话...
    99+
    2023-06-17
  • 实现C++虚函数时的注意事宜有哪些
    实现C++虚函数时的注意事宜有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C++中的C++虚函数的作用主要是实现了多态的机制,虚函数(Virtual Function...
    99+
    2023-06-17
  • C++ 函数预处理器的注意事项有哪些?
    注意事项:区分宏定义和函数声明,使用 #define 和 extern 分别定义。谨慎使用宏扩展,避免意外结果。使用逗号分隔宏定义中的参数。避免嵌套宏的使用。通过 #if 等条件表达式创...
    99+
    2024-04-11
    c++ 预处理
  • 学习C++静态成员的注意事宜有哪些呢
    这篇文章将为大家详细讲解有关学习C++静态成员的注意事宜有哪些呢,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。下面着重介绍C++静态成员,类的静态数据成员应该在代码中被显示的初始化,一定要在...
    99+
    2023-06-17
  • 开发Visual Web注意事宜有哪些
    这篇文章主要介绍开发Visual Web注意事宜有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!单元测试无疑是融合到Visual Web中的***的功能之一。此版本扩展了它的功能,改进了它的性能,扩大了它的范围,...
    99+
    2023-06-17
  • ADO.NET操作注意哪些事宜
    这篇文章主要介绍“ADO.NET操作注意哪些事宜”,在日常操作中,相信很多人在ADO.NET操作注意哪些事宜问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ADO.NET操作注意哪些事宜”的疑惑有所帮助!接下来...
    99+
    2023-06-17
  • 代理ip在爬虫时的注意事项有哪些
    这篇文章主要为大家展示了“代理ip在爬虫时的注意事项有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“代理ip在爬虫时的注意事项有哪些”这篇文章吧。1、API提取链接是否正常,是否能正常提取代...
    99+
    2023-06-20
  • replaceFirst使用时的注意事项有哪些
    这篇文章主要介绍了replaceFirst使用时的注意事项有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。replaceFirst使用时的注意事项公司项目最近有一个开发填...
    99+
    2023-06-29
  • 使用FlexSDK4时注意事项有哪些
    这篇文章将为大家详细讲解有关使用FlexSDK4时注意事项有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用FlexSDK4注意事项TWaverFlex是支持SDK4的,FlexSDK4新增了Spa...
    99+
    2023-06-17
  • io域名注册时有哪些注意事项
    注册io域名时需要注意一下几点:1.io域名只允许使用英文字母a-z以及数字0-9和英文中的连词符号“-”;2.4.io域名转让后会延长1年有效期;2.注册期限从1年到10年长度不等;3.io域名经历续费宽限期以及赎回宽限期还有5天的待删除...
    99+
    2024-04-02
  • c++获取时间戳要注意哪些事项
    在C++中获取时间戳时,需要注意以下事项: 使用适当的时间函数:在C++中,可以使用标准库中的ctime头文件中的函数来获取时间...
    99+
    2024-03-07
    c++
  • html编写edm时注意事项有哪些
    这篇文章主要介绍了html编写edm时注意事项有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。格式编码页面宽度请设定在600到800px以内,长度1024px以内。HTM...
    99+
    2023-06-08
  • C#中HttpClient使用注意事项有哪些
    小编给大家分享一下C#中HttpClient使用注意事项有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近在测试一个第三方API,准备集成在我们的网站应用中...
    99+
    2023-06-29
  • jQuery.get的注意事项有哪些
    这篇文章主要讲解了“jQuery.get的注意事项有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jQuery.get的注意事项有哪些”吧!   Ad...
    99+
    2024-04-02
  • Vue.js的注意事项有哪些
    这篇文章主要讲解了“Vue.js的注意事项有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue.js的注意事项有哪些”吧!1、为什么 Vue.js 不...
    99+
    2024-04-02
  • 域名选择与注册时的注意事项有哪些
    域名选择与注册时的注意事项有以下几点:域名选择使需要注意域名选择跟产品服务相关的简短域名,方便用户记忆,比如百度的“baidu.com”。域名后缀的选择,最好是选择一些常见的,比如:com、cn等。域名最好统一格式,比如用英文字母就只用英文...
    99+
    2024-04-02
  • spring事务的注意事项有哪些
    spring事务的注意事项有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  事务一般是指数据库事务,是指作为一个程序执行单元执行的一...
    99+
    2024-04-02
  • 使用MySQL时有哪些必须注意的事项
    下文主要给大家带来使用MySQL时有哪些必须注意的事项,希望这些内容能够带给大家实际用处,这也是我编辑使用MySQL时有哪些必须注意的事项这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。 ...
    99+
    2024-04-02
  • mysql使用索引时的注意事项有哪些
    mysql使用索引时的注意事项有哪些?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql使用索引时需要注意:1、列中含...
    99+
    2024-04-02
  • Python编码时应该注意的事情有哪些
    本篇文章给大家分享的是有关Python编码时应该注意的事情有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在编程过程中,多了解语言周边的一些知识,以及一些技巧,可以让你加速...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作