深蓝学院C++基础笔记 第 0 章 C++介绍

一、什么是C++

1、c++ 是一门比较流行的编程语言
\qquad ●https://www.tiobe.com/tiobe-index/编程语言排行榜2、c++是C 语言的扩展

● 更加关注性能
\qquad ● 与底层硬件紧密结合
\qquad \qquad java和python等语相对来说更加关注易用性。
\qquad ● 对象生命周期的精确控制
\qquad \qquad C#用完即弃,更易用
\qquad \qquad 及时释放空间,避免额外开销
\qquad ● Zero-overhead Abstraction
\qquad \qquad 无需为没有使用的语言特性付出成本
\qquad \qquad 使用了语言特性不等于付出成本,部分成本在编译器付出,运行期就会很快

 new在堆上开辟空间,常量在栈上。

● 引入大量特性,便于工程实践
\qquad ● 三种编程范式:面向过程、面向对象、泛型
\qquad ● 函数重载、异常处理、引用
3、 一系列不断衍进的标准集合

  • C++98/03 , C++11 , C++14 , C++17 , C++20
  • 语言本身的改进
  • 标准库的改进
    4、 C++ 标准的工业界实现
    编译器:
    windows: MSVC
    Linux: GCC / Clang

每个编译器可能并不完全遵照标准;不同的实现存在差异

总结:
不能脱离语境讨论C++
编写时要注重:
\qquad - 性能
\qquad - 标准

二、C++的开发环境和工具

  • VisualC++/GCC(G++)/Clang(Clang++)…
  • 集成开发环境:Visual Studio/CodeLite/Code::blocks/Eclipse…
  • 工具
    /usr/bin/time
    valgrind -内存泄漏之类查询
    cpp reference 【网站】
    Compiler explorer 【网站】
    C++insights
    cppcon:c++会议,可以在youtube看

编译工具:g++

三、c++的编译连接模型

  • 简单的加工模型- 在这里插入图片描述
  • 问题:无法处理大型程序
    加工耗时较长
    即使少量修改,也需要全部重新加工
  • 解决方案:分块处理- 在这里插入图片描述
  • 好处
    编译耗资源但一次处理输入较少
    链接输入较多但处理速度较快
    便于程序修改升级
  • 由“分块处理”衍生出的概念
    定义/声明
    头文件/源文件
    翻译单元
    ·源文件 +相关头文件(直接/间接)—应忽略的预处理语句
  • 一处定义原则:
    · 程序级:一般函数
    · 翻译单元级:内连函数、类、模板

c++的编译连接模型

预处理 -> 编译 -> 链接 -> 执行

预处理:-E 获取main.i

  • 将源文件转换为翻译单元
  • 头文件不应互相包含,防止头文件循环展开:
  • #ifdef
  • #pragma once
    在这里插入图片描述
    -S:生成啊相应的汇编代码
    在这里插入图片描述
    完整版:
    在这里插入图片描述
    编译
  • 将翻译单元转换为相应的汇编语言表示
  • 编译优化
    -O0
    debug:引入优化少【开发】
    release:引入优化多 【最后编译使用】

源文件变化只编译源文件,头文件变化需要全部重新编
增量编译和全部编译

汇编:

链接: 合并多个目标文件,关联声明与定义

  • 连接(Linkage)种类:内部连接、外部连接、无连接
  • 链接常见错误:找不到定义
    C++的编译/链接过程是复杂的,预处理、编译与链接都可能出错
    编译可能产生警告、错误,都要重视

.o:目标文件

三、小结

  • C++是一门注重性能的程序设计语言
  • C++的标准经历类一系列的衍化,还在不断发展
  • 标准与具体实现之间存在差距
  • C++源程序转换成可执行文件是相对复杂的过程,主要包含预处理、编译、链接等阶段,每一阶段都可能引入错误

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/250731.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Windows系统安全基线

文章目录 前言一、安全基线概述1.操作系统安全基线 二、系统账户安全1.控制密码安全2.密码策略3.账户锁定策略例:密码策略应用例:账户锁定策略应用 三、本地策略1.审核策略2.用户权限分配3.安全选项配置例:审核策略应用例:用户权限…

在线九宫切图(九宫格切图)工具

九宫切图是一款把照片裁切成九张图的在线工具,以方便您将其上传到您的微信朋友圈、微博、QQ空间以及其他社交网络。用它你就能够在社交网络上发布夺人眼球的震撼九宫格大图啦,实乃刷屏利器!微信、微博、QQ空间以及其他支持多图片相册的社交网…

如何利用PPT制作九宫格图片效果

在朋友圈、微博经常可以看到有人发九宫格图片。这里所说的九宫格图片其实是一张图,分在九张图片中显示,能够产生一种留白和想象的空间。 在制作PPT的过程中也可以做一个九宫格图片,增强视觉效果。下面介绍1种利用PPT制作九宫格图片的方法。 …

python在生活中的应用-制作图片九宫格

目的:批量将多张植物照片加上植物名字后拼接成多张3*3的图片。 思路:先给给张图片命名;然后代码实现加名字和拼图操作。 结果: 代码: # 该代码用于将图片文件名批量添加到图片上 # 并将多张图片合并拼接为1张# code…

python将图片裁剪成九宫格

要求:将图片裁剪成九宫格,宫格图片位置打乱 思路: 判断该图片长宽是否能被3整除,不能需要对图片进行裁剪(我的是边角裁剪)双重for循环,根据步长对图片数组进行切片达到裁剪效果random.shuffle(…

九宫格拼图怎么拼?分享两个简单的操作

日常生活中发朋友圈的时候,小伙伴是不是有很多照片想分享到朋友圈呢?但是因为朋友圈的限制,不能一次全发。有很多朋友发现很多朋友可以把一张图片剪成9格!看起来很棒,那九宫格拼图怎么拼的呢?今天就和大家分…

九宫格图片怎么操作?这里有你想要的方法

不知道平时小伙伴们在发朋友圈的时候有没有注意过很多人的朋友圈都会将很多图片拼起来,凑成九宫格图片来发送。这是因为朋友圈的限制,无法一次发完,每次最大上传只有9长照片。所以就有很多朋友一次拼齐9个图片在一起实现发布更多的图片&#…

四张图片如何合成一张四宫格?

对很多小伙伴来说,图片是自己日常生活和工作中不可或缺的一部分,图片可以以最快的速度记录事物的最真实原始的状态,大家也可以通过图片来给自己的生活留些记号。而在使用这些图片的过程中,很多时候都需要将四张图片合成一个四宫格…

如何将图片拼接成九宫格?

在日常生活中,经常会看到九宫格的图片拼接样式,那么大家知道自己怎么操作能够快速的将图片拼接成九宫格形状吗?接下来教大家使用找图设计网站的**拼图**https://www.zhaotu.com/pintu/功能,在线制作九宫格拼图的操作方法&#xff…

css图片九宫格布局

我在这里分享一下用flex布局实现的图片自适应九宫格布局。 首先&#xff0c;每个图片的宽度要给到刚好一排放下三个&#xff0c;所有的图片放在大盒子div里面&#xff0c;flex布局&#xff0c;具体看代码 <div id"box"><img src"0.jpg" ><…

PS制作九宫格图片

&#xff08;撰写时间&#xff1a;2019年6月6号星期四 作者&#xff1a;邱锡纶&#xff09;九宫格图片在网上比较流行的一种图片模式&#xff0c;所以我在课余时间也去摸索了一下这种九宫格图片的制作步骤&#xff0c;下面来和你们分享一下九宫格图片的制造方法吧&a…

代码写个九宫格布局显示图片

不在xml中设置布局&#xff0c;在代码中直接写个布局&#xff0c;显示下载的图片&#xff0c;如下图所示&#xff0c;图片有点丑 XML中添加个linearLayout <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http:/…

Android图片九宫格

九宫格分三类 实现的效果 具体实现 activity_main

用Python处理图片九宫格

本篇阅读时间约为 5 分钟。文/咪哥杂谈 1 前言 在日常的生活中&#xff0c;大家偶尔会看到朋友圈发的照片由一张被切成九张的效果&#xff0c;有时由一张照片被切成九张照片所带来的视觉盛宴是不一样的&#xff01; 现在许多 P 图工具里面自带了这种功能&#xff0c;而微信小程…

Android 九宫格布局(图片上传、预览)

前言&#xff1a; 利用RecyclerView展示朋友圈UI布局&#xff0c;包含展示、预览、删除等功能 效果图 1、在项目app\build.gradle添加依赖 //图片加载implementation com.github.bumptech.glide:glide:4.8.0//初始化控件找IDimplementation com.jakewharton:butterknife:10…

unity3d 中场景不显示了

应该是把Layers下面的Nothing打开了

python九宫格图片的原理~

原理 1、用Python制作的九宫格图像生成器包装exe文件&#xff0c;用户无需部署安装Python的开发环境&#xff0c;即可在当地运行该程序&#xff0c;快速生成九宫格图像。 2、用PIL库不断画小区域&#xff0c;切下来存储成新的小图片。 实例 假设每一个格子的宽和高分别是w、…

用纯css实现一个图片拼接九宫格

<style> body{ margin: 0; padding: 0; // 设定居中 display: flex; justify-content: center; align-items: center; height: 100vh; } .container{ width: 300px; height: 300px; display: flex; // 子盒子布局&#xff0c;要让子盒子之间有间隙就把宽高设大一些。 jus…

九宫格

一、定义 什么叫.9.PNG呢&#xff0c;这是安卓开发里面的一种特殊的图片 这种格式的图片在android 环境下具有自适应调节大小的能力。 &#xff08;1&#xff09;允许开发人员定义可扩展区域&#xff0c;当需要延伸图片以填充比图片本身更大区域时&#xff0c;可扩展区的内容被…

自定义九宫格图片

注&#xff1a;此Demo只是为了学习自定义相关知识&#xff0c;不建议在项目中引用使用. 已实现功能&#xff1a; 1.可设置每行显示的列数、删除图标、加号图片、设置padding&#xff0c;删除图标与图片的间距&#xff0c; 行和列的间距以及删除图标的大小; 2.match_parent模式…