C++系统教程001

1. 安装 Dev-C++编程软件
2. 熟悉 Dev-C++的界面
3. cout 输出语句的使用
4. 学会 C++程序的编译运

一、认识编译器

我们平时所说的程序,一般指双击后就可以直接运行的程序,这样的程序又称为可执行程序。Windows系统下,可执行程序的后缀一般为.exe。
可执行程序的内部是一系列计算机指令和数据的集合,它们都是二进制形式的,CPU可以直接识别。但我们使用C、C++、Java、Python等高级语言编写的程序(又称为源代码),对于开发人员来说更易理解,但CPU却无法识别(CPU只认识几百个二进制形式的指令)。这时就需要一个工具,将这些源代码转换成CPU能够识别的二进制指令,即将其“翻译”成.exe可执行程序。

翻译的工具就是编译器。翻译过程就是编译。

二、开发C++程序

编辑、编译、连接、运行。

(1)编辑

编辑就是在C++开发工具中输入代码,然后将其保存为.cpp源文件的过程。

编辑代码,并将其保存为Sample.cpp源文件。

(2)编译

编译就是将代码源文件(.cpp文件)编译成目标文件(.obj文件)的过程。

编写好代码后,在任一款C++开发工具中单击“编译”按钮,系统将自动对代码进行编译,得到Sample.obj文件

(3)连接

连接是将编译后的目标文件连接生成可执行程序的过程,就是将.obj和lib库文件连接成.exe可执行程序(lib库是编译好的提供给开发者使用的目标模块)​。

在有多个源文件的工程中,例如有.cpp、成多个目标模块01.obj、02.obj、03.obj,链接器会将程序涉及的目标模块连接成可执行程序

(4)运行

运行是执行.exe可执行程序的过程,执行程序后可得到程序运行。运行是执行.exe可执行程序的过程,执行程序后可得到程序结果

三、辅助软件

编辑器:用来编写代码,并给不同代码着色,以方便阅读。

代码提示器:输入部分代码,即可提示全部代码,提升代码的编写效率。

调试器:观察程序的每一个运行步骤,发现程序的逻辑错误。

项目管理工具:对程序涉及的所有资源进行管理,包括源文件、图片、视频、第三方库等。

漂亮的界面:各种按钮、面板、菜单、窗口等控件整齐排布,操作更方便。

这些工具通常会打包在一起,统一进行发布、下载和安装。它们被统称为C++集成开发环境(IDE),常见的有Visual C++ 6.0、VisualStudio、Dev C++、Xcode、C-Free、Code::Blocks、Eclipse等。

介绍工具

1.Visual C++ 6.0

Visual C++ 6.0曾经是最经典的C/C++编译工具,是微软VisualStudio集成开发环境中的一员。目前,微软官方已不再对其进行技术支持和维护。该工具体积小巧,操作简单,对计算机配置要求不高,而且免费,所以目前仍有第三方开发者在进行维护,部分院校在使用它。

2.Visual Studio 2022Visual Studio是目前较流行的Windows应用程序的商业集成开发环境,其最新版本是2022版。它功能强大,在编译速度上有很大提升;缺点是空间和资源占用大,安装包有2~3GB,对计算机的配置要求较高,而且操作比较复杂。对于初学者来说,很多功能会暂时用不到。Visual Studio 2022支持C++最新标准规范,支持托管程序的编译和Web Service,更适合大型商业程序的开发。

3.Dev-C++Dev-C++是Windows系统下轻量级的C/C++集成开发环境,是将Linux系统的GCC/G++运用到Windows系统后的产物。它遵循C++11标准,同时兼容C++ 98标准。Dev-C++功能简洁,易于学习和使用,非常适合初学者和教学使用

根据个人的情况选择一个即可。初期学习编程,最重要的是理解语法,弄清C++的内在机理,并通过大量训练培养编程思维,最后再通过一些大型项目积累实战经验。

本次主要以Dev-c++编译器为主。

四、C++工程项目文件

数据是以文件的形式存储在磁盘上的,不同类型的文件有着不同的扩展名。

C++代码文件分为源文件头文件两类。

头文件

以.h为扩展名,仅包含程序片段或定义的常量、变量等,为程序提供接口;

源文件

以.cpp为扩展名,提供了程序的主体实现。有的开发环境使用cxx、cHH作为源文件的扩展名。对一个比较大的工程而言,其源文件和头文件可能比较多。为了管理它们,编译器提供了管理代码的工程项目文件。不同开发环境下的工程项目文件通常会有所不同。

(1)Dev-C++的工程项目文件

 main.cpp:源文件。.

Sample.dev:工程文件。

Makefile.win:make程序执行时使用的文件,用于自动编译源代码文件。

main.o:编译后的目标文件。

Sample.exe:连接后生成的程序。

五、使用Dev C++创建程序

Dev C++是Windows系统下C/C++的集成开发环境,包括多页面窗口、工程编辑器以及调试器等。工程编辑器中集合了编辑器、编译器、链接程序和执行程序,提供高亮语法显示,以减少编辑错误。Dev C++是免安装的,适合初学者与编程高手的不同需求,是学习C或C++的首选开发工具。

1.了解Dev C++主界面

Dev C++主界面由菜单栏、工具栏、项目资源管理器视图、程序编辑区、编译调试区和状态栏组成,

2.创建Hello World程序

(1)双击Dev C++

安装目录下的文件,启动Dev C++,然后选择“文件”→“新建”→“源代码”命令,新建一个C++源代码文件。

(2)编写程序代码

选择“运行”→“编译运行”命令,或按F11键,或单击图标,运行C++程序。

(3)选择“文件”→“保存”命令或按Ctrl+S快捷键,在“保存为”对话框中设置文件保存位置和文件名称,单击“保存”按钮,保存文件。注意为便于阅读代码,读者可自行设置屏幕的背景颜色和文字颜色。右击标题栏,在弹出的快捷菜单中选择“属性”命令,打开“属性”对话框,在“颜色”选项卡中设置即可。

拥有自由就必须时刻保持警惕!(要实际进行操作的友友)

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

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

相关文章

The Llama 3 Herd of Models【论文原文下载】

关注B站可以观看更多实战教学视频:hallo128的个人空间 The Llama 3 Herd of Models【论文原文】 点击下载:原文下载链接 摘要 现代人工智能(AI)系统由基础模型驱动。本文介绍了一组新的基础模型,称为 Llama 3。它是…

PostgreSQL的repmgr工具介绍

PostgreSQL的repmgr工具介绍 repmgr(Replication Manager)是一个专为 PostgreSQL 设计的开源工具,用于管理和监控 PostgreSQL 的流复制及实现高可用性。它提供了一组工具和实用程序,简化了 PostgreSQL 复制集群的配置、维护和故障…

欺诈文本分类检测(十):QLora量化微调

1. 引言 前文微调方法概览总结了微调的各种方法,并且在更前面两篇文章Lora单卡训练 和 lora单卡二次调优中已经尝试过用Lora进行微调,本文出于好奇准备尝试下用QLora进行微调的效果。 QLoRA是一种新的微调大型语言模型(LLM)的方…

使用Python的Elasticsearch客户端 elasticsearch-py 来完成删除现有索引、重新创建索引并测试分词的示例代码

以下是一个使用Python的Elasticsearch客户端 elasticsearch-py 来完成删除现有索引、重新创建索引并测试分词的示例代码 一、安装依赖 pip install elasticsearch二、运行效果 三、程序代码 from elasticsearch import Elasticsearch, NotFoundError# 连接到Elasticsearch es…

PS系统教程32

调色之单通道调色 上次分享内容调色可通过 色阶调色曲线调色 案例-复古 CtrlM调出曲线图选择单色通道-蓝色降到1/2绿色降1/4红色定点上拉 冷风 Alt复位降到1/2绿色降1/4红色定点下拉 调色-色相饱和度(ctrlu) 原图 只改变背景不改变蜥蜴的颜色 对比…

SpringBoot中@SchedulerLock注解实现定时任务中分布式锁的使用

背景 在SpringBoot项目中经常会去写一些定时任务,但是当我们的服务的实例部署多个的情况下,那么每个实例中的定时任务都会执行一遍,这显然不是我们想要的,我们只想让它执行一次。在没有引入像xxl-job之类的分布式任务调度框架的前…

CRIO与Windows下LabVIEW开发对比

LabVIEW在CRIO和Windows平台上开发时,尽管同属于一个编程环境,但在硬件架构、实时性能、模块化设计等方面存在显著差异。CRIO系统通常应用于工业自动化和嵌入式控制,具有实时操作系统支持和强大的I/O扩展能力;而Windows系统则更适…

突破教材,简单聊聊《文件系统》

文章目录 前言:文件系统的引入:认识物理磁盘: 对磁盘的存储进行逻辑抽象:LBA逻辑区块地址: 🚀文件系统的理解:理解各个区段:🛹深入理解 inode:inode和文件名&…

动态化-鸿蒙跨端方案介绍

一、背景 👉 华为在2023.9.25官方发布会上宣布,新的鸿蒙系统将不再兼容安卓应用,这意味着,包括京东金融APP在内的所有安卓应用,在新的鸿蒙系统上将无法运行,需要重新开发专门适用于新鸿蒙系统的专版APP。 …

Windows安装使用Docker

配置Dorker环境 启用或关闭windows功能 安装wsl 以管理员身份打开windows PowerShell,安装相关配置 下载docker应用程序 Releases tech-shrimp/docker_installer (github.com) 安装Docker 指定安装位置 默认双击程序就开始安装了,要安装在指定位置…

iOS P8证书推送测试

最近在配合服务端人员调试相关的 APNS auth key 推送的问题,相比于苹果的P12证书的推送,P8证书的推送显得方便很多,P8的优势在于简单,安全 容易生成 最重要的是不会过期。 现在我们来看下测试具体流程: 方法一 地址…

ESP-DL部署魔改MobilenetV1—3. 模型部署

在完成模型训练和模型量化后,就可以开始我们的模型部署了。这部分的关键在于Model类中层的初始化以及build和call的实现。 环境依赖 esp-idf > 5.0esp-dl 模型定义 在模型定义时,我们需要用到量化时输出的层信息、cat_vs_dog_coefficient.hpp&…

分析源码学习c++(srs中http客户端)

文章目录 背景基础知识c标准库虚函数虚函数使用方法 虚析构函数 HTTP客户端使用方法TCP传输层分析使用方法结构分析连接函数读写函数 协议层分析初始化函数发送请求响应数据解析 背景 通过阅读源码,编写分析笔记来学习C是一种非常有效且深入的方法,能帮助…

论文解读 | ACL2024 Outstanding Paper:因果指导的主动学习方法:助力大语言模型自动识别并去除偏见...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 点击阅读原文观看作者直播讲解回放! 作者简介 孙洲浩,哈尔滨工业大学SCIR实验室博士生 概述 尽管大语言模型(LLMs)展现出了非常强大的能力,但它们仍然…

数据源10min自动断开连接导致查询抛异常(未获取可用连接)

由于个人能力有限,本文章仅仅代表本人想法,若有不对请即时指出,若有侵权,请联系本人。 1 背景 工作中引入druid来管理数据源连接,由于数据源每隔10分钟强制管理空闲超过10分钟的连接,导致每隔10分钟出现1…

Web攻防之应急响应(二)

目录 前提 🍔学习Java内存马前置知识 内存马 内存马的介绍 内存马的类型众多 内存马的存在形式 Java web的基础知识: Java内存马的排查思路: 🍔开始查杀之前的需要准备 1.登录主机启动服务器 2.生成jsp马并连接成功 …

【Linux】多线程:线程概念,线程与进程的区别与联系,多线程相较于多进程的优势

目录 一、进程基本属性回顾 二、线程概念 三、操作系统为什么要引入线程—多进程和多线程的区别 为什么多线程比多线程调度效率更快? 四、线程的优点 五、线程的缺点 六、线程异常 一、进程基本属性回顾 在学习线程之前,我们先来回顾一下进程的基…

注册安全分析报告:熊猫频道

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

【Rust】007-包管理与模块管理

【Rust】007-包管理与模块管理 文章目录 【Rust】007-包管理与模块管理一、包管理器:Cargo1、简介Cargo 官方文档仓库 2、项目初始化3、写一个小程序任务目标寻找合适的库添加库到我们的项目中代码实现cargo run运行 二、模块管理1、概述2、文件作为模块第一步&…

前端模拟面试:如何检查JavaScript对象属性是否存在?

你正在参加一场关键的前端开发面试,面试官提出了一个经典的JavaScript问题:“在JavaScript中,如何检查对象是否包含某个属性?请你详细介绍几种不同的方法,并解释它们的区别。” 这个问题不仅考验你对JavaScript的基础掌…