逆向基础--C++介绍与环境 (01)

news/2025/11/8 17:54:36/文章来源:https://www.cnblogs.com/MrHSR/p/19201349

逆向基础--C++介绍与环境 (01)

一.介绍

  1.1  C++ 是一种高级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Windows、MAC 操作系统以及 UNIX 的各种版本。它是一种中级语言,它综合了高级语言和低级语言的特点。它是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。它是面向程序的设计,包括面向对象开发的四大特性:封装、继承、多态、抽象。

    注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。像java、C#多数都是静态类型的编程语言,也允许少部份的动态类型如:C#的dynamic对象。动态类型语言如python、javascript、Buby ,一个变量的类型是在运行时确定时。

  1.2 标准库由三个重要部分组成:

    1)核心语言:提供了所有构件块,包括变更、数据类型和常量等。

    2)C++ 标准库,提供了大量的函数,用于操作文件、字符串等。

    3)标准模板库(STL),提供了大量的方法,用于操作数据结构等。

  1.3 应用领域包括

    1)游戏开发:C++ 是游戏开发领域中最常用的编程语言之一,因为它具有高效的性能和直接控制硬件的能力。许多主要的游戏引擎,如 Unreal Engine 和 Unity,都使用 C++ 编写。

    2)嵌入式系统开发:C++ 可以在嵌入式系统中发挥重要作用,如智能手机、汽车、机器人和家电等领域。由于嵌入式系统通常具有严格的资源限制和实时要求,因此 C++ 的高效性能和内存控制功能非常有用。

    3)金融领域:C++ 在金融领域中被广泛应用,如高频交易、算法交易和风险管理等领域。由于这些应用程序需要高效的性能和对硬件的直接控制,C++ 语言是一个合适的选择。

    4)图形图像处理:C++ 可以用于开发图形和图像处理应用程序,如计算机视觉、计算机图形学和人工智能领域。由于这些应用程序需要高效的计算能力和对硬件的控制,因此 C++ 是一个很好的选择。

    5)科学计算和数值分析:C++ 可以用于开发科学计算和数值分析应用程序,如数值模拟和高性能计算等领域。由于这些应用程序需要高效的计算能力和对硬件的直接控制,C++ 语言是一个很好的选择。

  1.4 扩展名

    1).cpp:这是最常用的C++源文件扩展名。通常表示该文件是C++源代码文件。例如,main.cpp

    2).cp:这个扩展名不太常见,但有时也用于表示C++源文件。它可能是为了缩短扩展名,但在实际项目中较少使用。

    3).c:这个扩展名用于C语言源文件。如果文件使用.c扩展名,编译器通常会按照C语言的语法规则来编译该文件。C++项目中混合C语言开发时,可以相互调用,因为C++设计时的一个重要特性是为了兼容C

  1.5 注释

    //   一般用于单行注释。 /* ... */   一般用于多行注释。

 

二.开发环境

  常见的IDE开发工具:vs code 、vs、 vim和Emacs传统的文本编辑器、 Eclipse等       

  2.1 C++编译器

    开发人员写的源文件代码是需要经过"编译",转为机器语言,这样 CPU 可以按给定指令执行程序

    C++编译器用于把源代码编译成最终的可执行程序。执行文件格式:Windows: PE格式 (.exe, .dll)、Linux: ELF格式 (无扩展名, .so)、 macOS: Mach-O格式。

    最常用且免费的 C/C++ 编译器是 GNU 编译器集合(GCC),它几乎可以在所有操作系统上使用,包括 Linux、Windows 和 macOS。如果想在 HP-UX(惠普操作系统) 和 Solaris (甲骨文操作系统)上运行,这些是商业版的 Unix 系统,通常系统会自带一个官方的编译器(如 Solaris 的 Oracle Developer Studio)。

  2.2 IDE工具

    这里介绍使用Visual Studio开发,是用微软的 MSVC 编译器,编译后的可执行文件只能在windows操作系统上运行。在学汇编时已了解到,汇编、C、C++源文件编译后生成的是本地代码(依赖于操作系统和硬件架构)的可执行文件。

    如下图所示:是Visual Studio要开发C++程序时,需要勾选项安装,

    

image

     Visual Studio-->新建项目-->所有语言-->C++-->控制台应用程序,如下所示: 

image

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【技术术语】静默失效

【技术术语】静默失效“静默失效”(Silent Failure)是指系统或程序在出现错误或故障时,没有给出任何明显的错误提示或警告,而是继续运行,导致问题被掩盖,最终可能引发更严重的后果。这种情况在软件开发、硬件设计…

深入解析:Git Commit Message 最佳实践:从一次指针Bug说起

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年文化节活动篷房订做厂家权威推荐榜单:航空机库篷房/体育篷房/宴会篷房源头厂家精选

在各类文化节庆活动日益丰富的市场环境下,活动篷房以其灵活的空间解决方案,成为保障活动顺利实施的关键设施。行业数据显示,2024年国内篷房市场规模增长率稳定在15%左右,其中针对文化节、展览展示等临时性活动的定…

【技术术语】惊群效应

【技术术语】惊群效应惊群效应 (Thundering Herd Problem) 惊群效应是计算机科学中的一个术语,用来描述当多个进程或线程同时被唤醒去竞争有限资源时导致的性能下降现象。 基本概念 惊群效应得名于动物受惊后群体盲目…

Docker 资源限制与容器管理 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

使用 gitee 完整简要演示 20251108

安装 git 安装步骤 请看: https://www.cnblogs.com/emanlee/p/16296704.html首先在 gitee.com 注册用户; 记住:用户名,email,密码照着这个配置: https://www.cnblogs.com/emanlee/p/18729324Visual Studio Code…

Spide - Personal Blog Magazine WordPress Theme Download - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【技术术语】即发即弃

【技术术语】即发即弃即发即弃(Fire-and-Forget) 是一种编程或系统设计模式,指的是发起一个操作后,不关心其执行结果或状态,也不等待其完成,直接继续后续流程。这种方式适用于非关键任务或允许最终一致性的场景,…

深入解析:wpf之命令

深入解析:wpf之命令pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…

【技术术语】指数退避策略

【技术术语】指数退避策略指数退避策略 (Exponential Backoff) 指数退避是一种在网络通信和分布式系统中广泛使用的算法,用于协调重试失败的请求或操作。它的核心思想是:随着连续失败的次数增加,系统会逐渐延长重试…

【技术术语】冒烟测试

【技术术语】冒烟测试冒烟测试(Smoke Testing)是软件测试中的一种初步测试方法,用于快速验证系统的基本功能是否正常,确保软件的核心流程没有严重缺陷。它的名称来源于电路板测试中的“通电冒烟”比喻——如果基本…

2025年同步带直线滑台模组批发厂家权威推荐榜单:同步带直线滑块模组/伺服电机同步带直线模组/直线同步带模组源头厂家精选

在工业自动化高速发展的背景下,同步带直线滑台模组作为核心传动部件,其性能直接关系到自动化设备的定位精度与生产效率。据行业数据显示,2025年全球直线模组市场需求同比增长18.6%,其中同步带模组因速度快、行程长…

【技术术语】服务等级协议

【技术术语】服务等级协议SLA 在计算机和IT服务领域是 Service Level Agreement(服务等级协议) 的缩写,是服务提供商与客户之间定义服务质量和责任的法律协议。以下是关键要点:核心内容服务指标可用性:如服务器正…

【技术术语】命令查询职责分离

【技术术语】命令查询职责分离CQRS(命令查询职责分离)中文解析 CQRS(Command Query Responsibility Segregation)是一种架构模式,它将数据读取操作(查询)与数据更新操作(命令)分离。以下是详细说明: 核心概念…

2025年粉末分级机气流优质厂家权威推荐榜单:气流分级机/气流分级机供应/卧式气流分级机源头厂家精选

在粉体工业领域,气流分级机作为精细分级的关键设备,其技术水平直接影响着粉体产品的粒度分布和产品质量。根据行业数据显示,2024年中国粉体设备市场规模同比增长12.5%,其中气流分级机在非金属矿、新能源材料等领域…

【技术术语】蓝绿部署

【技术术语】蓝绿部署蓝绿部署(Blue-Green Deployment)详解 蓝绿部署是一种零停机时间的应用发布策略,通过维护两个完全相同的生产环境(蓝色和绿色)来实现无缝切换和快速回滚。 核心概念蓝色环境(Blue):当前正在运…

图的易错点

图的易错点处理多组图时 vector<pair<int,int>>e[N]需要在每次新建图时清空 /*错误操作: */ e.clear();/* 正确操作: */ for(int i=1;i<=n;i++){e[i].clear(); }

2025年汽车内饰模具批发厂家权威推荐榜单:汽车轻量化模具/复材模具定制/机器人模具源头厂家精选

在汽车产业转型升级与轻量化趋势加速的背景下,汽车内饰模具市场正迎来快速增长。据行业数据显示,2024年全球汽车内覆盖件模具市场规模达到5.11亿美元,预计到2031年将增长至6.75亿美元,期间年复合增长率约为4.1%。中…

【技术术语】OLAP与OLTP详解

【技术术语】OLAP与OLTP详解OLAP与OLTP详解 OLTP (在线事务处理) Online Transaction Processing 核心特点:面向操作:处理日常业务中的实时交易数据 高频访问:大量简单的短事务(每次操作涉及少量记录) 数据现状:存…

焊接机械手气体节能小秘诀

克鲁斯焊接机械手凭借其高效性、稳定性和灵活性,成为众多企业的首选解决方案。在实际应用中,弧焊过程中保护气体的浪费问题一直困扰着行业从业者。这一问题不仅增加了生产成本,还对环境保护造成了一定压力。为解决这…