我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何搭建C++开发环境

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何搭建C++开发环境

本篇内容主要讲解“如何搭建C++开发环境”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何搭建C++开发环境”吧!

1.我们先来看看内联函数给我们带来的好处:从一个用户的角度来看,内联函数看起来和普通函数一样,它可以有参数和返回值,也可以有自己的作用域,然而它却不会引入一般函数调用所带来的负担。另外,它可以比宏更安全更容易调试。

当然有一点应该意识到,inline specifier仅仅是对编译器的建议,编译器有权利忽略这个建议。那么编译器是如何决定函数内联与否呢?一般情况下关键性因素包括函数体的大小,是否有局部对象被声明,函数的复杂性等等。

2.那么如果一个函数被声明为inline但是却没有被内联将会发生什么呢?理论上,当编译器拒绝内联一个函数的时候,那个函数会像普通函数一样被对待,但是还会出现一些其他的问题。例如下面这段代码:

// filename Time.h   #include<ctime>   #include<iostream>   using namespace std;   class Time   {   public:   inline void Show() { for (int i = 0; i<10; i++) cout<<time(0)<<endl;}   };

因为成员函数Time::Show()包括一个局部变量和一个for循环,所以编译器一般拒绝inline,并且把它当作一个普通的成员函数。但是这个包含类声明的头文件会被单独的#include进各个独立的编译单元中:

// filename Time.h   #include<ctime>   #include<iostream>   using namespace std;   class Time   {   public:   inline void Show() { for (int i = 0; i<10; i++) cout<<time(0)<<endl;}   };


程序被链接的时候,linker将会面对两个相同的Time::Show()拷贝,于是函数重定义的连接错误发生。但是老一些的C++实现对付这种情况的办法是通过把一个un-inlined函数当作static来处理。

因此每一份函数拷贝仅仅在自己的编译单元中可见,这样链接错误就解决了,但是在程序中却会留下多份函数拷贝。在这种情况下,程序的性能不但没有提升,反而增加了编译和链接时间以及最终可执行体的大小。
但是幸运的是,新的C++标准中关于un-inlined函数的说法已经改变。

一个符合标准C++实现应该只生成一份函数拷贝。然而,要想所有的编译器都支持这一点可能还需要很长时间。
另外关于内联函数还有两个更令人头疼的问题。

***个问题是该如何进行维护。一个函数开始的时候可能以内联的形式出现,但是随着系统的扩展,函数体可能要求添加额外的功能,结果内联函数就变得不太可能,因此需要把inline specifier去除以及把函数体放到一个单独的源文件中。

另一个问题是当内联函数被应用在代码库的时候产生。当内联函数改变的时候,用户必须重新编译他们的代码以反映这种改变。然而对于一个非内联函数,用户仅仅需要重新链接就可以了。

这里想要说的是,内联函数并不是一个增强性能的灵丹妙药。只有当函数非常短小的时候它才能得到我们想要的效果。但是如果函数并不是很短而且在很多地方都被调用的话,那么将会使得可执行体的体积增大。

到此,相信大家对“如何搭建C++开发环境”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何搭建C++开发环境

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何搭建C++开发环境

本篇内容主要讲解“如何搭建C++开发环境”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何搭建C++开发环境”吧!1.我们先来看看内联函数给我们带来的好处:从一个用户的角度来看,内联函数看起来和
2023-06-17

ubuntu如何搭建c语言开发环境

要在Ubuntu上搭建C语言开发环境,您可以按照以下步骤进行操作:1. 安装编译器:打开终端,运行以下命令安装gcc编译器和make工具。```sudo apt updatesudo apt install build-essential`
2023-08-29

如何搭建Scala开发环境

这篇文章主要介绍了如何搭建Scala开发环境,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Scala基于Java平台,所以Scala开发环境很容易搭建。看了下面的介绍,你会对
2023-06-17

JBPM开发环境如何搭建

要搭建JBPM的开发环境,需要以下几个步骤:1. 安装Java JDK:首先要确保机器上已安装Java JDK,并设置好JAVA_HOME环境变量。2. 下载JBPM:从JBPM官方网站(https://www.jbpm.org/)上下载最
2023-09-11

golang如何开发环境搭建

搭建步骤:1、在Golang官方网站上下载适合操作系统的安装包;2、按照官方文档或安装指南的说明,执行安装程序进行安装;3、将Golang的安装路径添加到系统的PATH环境变量中;4、在计算机上创建一个用于存放Golang项目的工作目录;5
golang如何开发环境搭建
2023-12-15

Python开发环境如何搭建

小编给大家分享一下Python开发环境如何搭建,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、Python解释器 安装Windows平台下载地址 https:/
2023-06-15

Jspxcms开发环境如何搭建

本文小编为大家详细介绍“Jspxcms开发环境如何搭建”,内容详细,步骤清晰,细节处理妥当,希望这篇“Jspxcms开发环境如何搭建”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Jspxcms开发环境使用ecli
2023-06-26

git开发环境如何搭建

这篇文章主要介绍“git开发环境如何搭建”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“git开发环境如何搭建”文章能帮助大家解决问题。一、安装 GitGit 的安装方式有多种,下面介绍两种常用的方式
2023-07-05

如何搭建Java开发环境

这篇“如何搭建Java开发环境”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“如何搭建Java开发环境”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。
2023-06-26

linux开发环境如何搭建

要搭建Linux开发环境,可以按照以下步骤进行:1. 选择Linux发行版:根据自己的需求和偏好,选择适合的Linux发行版,如Ubuntu、Debian、Fedora等。2. 安装Linux操作系统:下载选择的Linux发行版的ISO镜像
2023-08-17

php开发环境如何搭建

要搭建PHP开发环境,您需要按照以下步骤进行操作:安装Web服务器:您可以选择Apache、Nginx等常见的Web服务器。根据您的操作系统,下载并安装适合的Web服务器软件。安装PHP解释器:您可以从PHP官方网站下载适合您操作系统的P
2023-10-25

如何搭建Android Studio开发环境

这篇文章将为大家详细讲解有关如何搭建Android Studio开发环境,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、安装Android Studio笔者用的计算机配置如下:Mac下安装Android
2023-05-30

如何搭建PHP+MySQL开发环境

今天小编给大家分享一下如何搭建PHP+MySQL开发环境的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。安装本地服务器软件安装
2023-07-05

Qt MQTT开发环境如何搭建

本篇内容主要讲解“Qt MQTT开发环境如何搭建”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Qt MQTT开发环境如何搭建”吧!1.概述由于MQTT的库没有加入到Qt的标准里面,所以,我们需要
2023-07-02

linux如何搭建node.js开发环境

本篇内容主要讲解“linux如何搭建node.js开发环境”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux如何搭建node.js开发环境”吧!1.这里因为没有服务器,我们本地通过虚拟机搭
2023-07-06

如何搭建Python的开发环境

这篇文章主要介绍“如何搭建Python的开发环境”,在日常操作中,相信很多人在如何搭建Python的开发环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何搭建Python的开发环境”的疑惑有所帮助!接下来
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录