【C++学习记录】(二)--一个C++工程文件里有哪些东西?

news2024/11/25 14:58:13

写在前面

首先,我有一个完整的C++工程文件,文件分别是包含Debug、include、Service和src。
1.了解文件结构: 首先,查看每个文件夹中的内容以了解文件的组织结构。Debug文件夹通常包含与调试相关的文件,include文件夹可能包含头文件 (.h文件),Service文件夹可能包含服务类或模块,而src文件夹可能包含源代码文件 (cpp文件)
2.阅读文件: 逐个打开每个文件,阅读其中的代码。尝试阅读和理解每行代码的作用。注意代码中的注释,它们可以提供对代码功能和实现的解释。
3.查看依赖关系: 检查include文件夹中的头文件,了解代码中使用的外部库、模块或类。帮助理解代码的整体结构和依赖关系。

C++程序=预编译指令+程序代码+注释

预编译指令

它的作用是告诉编译器,让它在真正进行编译之前对源文件进行一些插入文件、替换字符串等预处理,以得到最终参与编译的源文件。
“#include”用于将指定的文件插入该指令所在的位置,作为整个源文件的一部分。因为这样的文件总是在一个源文件的头部被插入,所
以我们通常将这样的文件称为头文件(header file)。如果插入了“iostream”这个头文件,就写作#include< iostream>。

程序代码

1.using namespace std;
//使用System名字空间,这是C++中的编程经验,表明我所使用的名字空间是std。
2.int main()
这条语句连同它后面大括号内的内容,共同构成了main()函数,也称为主函数,main函数是一个全局函数,一个C++程序必须有一个主函数,且只能有一个主函数。当C++程序开始执行的时候,将首先进入主函数,然后逐条地执行其中的语句,直到其中的语句执行完毕退出主函数,程序执行也就结束了。
3.return 0;
它表示程序成功执行完毕并返回(return)。通常,我们返回一个0值表示程序成功执行(如果在程序的执行过程中出现错误,也可以返回表示错误信
息的其他数值。程序的执行者可以接受这个返回值以判断程序是否成功执行。

注释

注释的作用的解释代码的作用,在形式上,C++中的注释可以分为单行注释和块注释两种。

C++中头文件(.h)和源文件(.cpp)都应该写些什么

头文件(.h):

写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。变量的定义和函数的实现在源文件.cpp中进行,.h和.cpp在习惯上使用相同的命名名称。这样写似乎是一种约定俗成的编程风格,一个类的名字作为其头文件和源文件的主文件名比如Class1.h和Class1.cpp,这个类的声明在Class1.h中,实现在Class1.cpp中,我们人类看起来比较整齐,读起来方便,也很有利于模块化和源代码的重用。

在写头文件时,在开头和结尾处必须按照如下样式加上预编译语句

#ifndef __SIM_H__
#define __SIM_H__

// 你的代码写在这里

#endif

.h叫做头文件,它是不能被编译的。“#include”叫做编译预处理指令,可以简单理解成,在1.cpp中的#include"1.h"指令把1.h中的代码在编译前添加到了1.cpp的头部。每个.cpp文件会被编译,生成一个.obj文件,然后所有的.obj文件链接起来你的可执行程序就算生成了。

源文件(.cpp):

源文件主要写实现头文件中已经声明的那些函数的具体代码。在.cpp文件里定义、实现或初始化全局函数和全局变量。需要注意的是,开头必须#include一下实现的头文件,以及要用到的头文件。那么当你需要用到自己写的头文件中的类时,只需要#include进来就行了。
类似于这样:在这里插入图片描述

在这里插入图片描述

最后

一个小工具,我在看一个工程文件时需要搜索关键词或观察具体的函数是怎么定义的,就需要在CLion中进行全局的变量搜索。
在这里插入图片描述

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

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

相关文章

Innovus:highlight clock tree(高亮时钟树方法)

过往文章链接&#xff1a; ICC2: highlight clock tree&#xff08;高亮时钟树方法&#xff09; innovus也有高亮clock tree的方法 在ccopt之后&#xff0c;使用ctd_win命令打开Clock Tree Debugger (CTD) window。 ctd_trace -from $root_pin -to $sink_pin -color $color ;#…

产品介绍|持续机器视觉产品的研发与迭代,赋能制造行业智慧生产

当前&#xff0c;以人工智能为代表的新一代信息技术正在加速推动社会各领域优化升级&#xff0c;对于行业自动化、智能化的要求越来越高&#xff0c;作为人工智能重要领域之一的机器视觉技术&#xff0c;迎来了快速发展。 机器视觉用机器代替人眼来做测量和判断&#xff0c;通…

STM32MP157驱动开发——设备树知识

文章目录 概述开发板中设备树文件目录结构设备树文件语法设备树文件参考实例&#xff1a;Devicetree 格式DTS 文件的格式node 的格式properties 的格式 dts 文件包含 dtsi 文件常用的属性#address-cells 、#size-cellscompatiblemodelstatusreginterruptgpio属性name( 过时了&a…

SSM框架整合

1.创建数据库表 数据库环境搭建 CREATE DATABASE ssmbuild;USE ssmbuildDROP TABLE IF EXISTS books;CREATE TABLE books( bookID INT(10) NOT NULL AUTO_INCREMENT COMMENT 书id, bookName VARCHAR(100) NOT NULL , bookCounts INT(11) NOT NULL , detail VARCHAR(200) NOT …

【Netty】NIO基础(三大组件、文件编程)

文章目录 三大组件Channel & BufferSelector ByteBufferByteBuffer 正确使用姿势ByteBuffer 内部结构ByteBuffer 常见方法分配空间向 buffer 写入数据从 buffer 读取数据mark 和 reset 字符串与 ByteBuffer 互转Scattering ReadsGathering Writes粘包、半包分析 文件编程Fi…

美团青龙教程(2023.3.2最新版)附脚本

这次直接放上leaffish大佬的库地址吧&#xff0c;美团脚本也在里面 &#xff08;此为最新脚本&#xff09; ql raw https://raw.githubusercontent.com/leafTheFish/DeathNote/main/meituanV3.js /* 美团 v3.02 新版美团仅支持青龙等nodejs环境, 不支持圈X 自动领券和完成一…

HTML5+CSS3+JS小实例:快捷菜单图标按钮交互特效

实例:快捷菜单图标按钮交互特效 技术栈:HTML+CSS+JS 字体图标库:font-awesome 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name…

6.7Jmeter5.1,非GUI模式,通过命令行传递线程数

原创文章&#xff0c;谢绝转载。 一、前提 本次做性能测试&#xff0c;需求是需要在Linux下的非GUI模式下执行。但用命令行执行时&#xff0c;线程数需要改变&#xff0c;为了执行方便&#xff0c;不需要每次都在脚本中修改线程数&#xff0c;那么线程数都需要通过参数传递&…

Flutter III 之你不知道的 PlatformView 的混乱之治

如果你是从 2018 年开始使用 Flutter &#xff0c;那么相信你对于 Flutter 在混合开发的支持历程应该会有一个深刻的体会&#xff0c;如果你没尽力过这个时期&#xff0c;不要担心&#xff0c;通过我过往 PlatformView 的相关文章&#xff0c;你也可以有一个清晰的感受&#xf…

python 乘法口诀

下面是一个用Python打印乘法口诀表的代码&#xff1a; print("乘法口诀表:")for i in range(1, 10):for j in range(1, i1):print(f"{j} {i} {i*j}", end"\t")print()

AI绘画创意文字全流程揭秘,你的终极文字艺术实操宝典

本教程收集于&#xff1a;AIGC从入门到精通教程汇总 AIGC技术不断更新迭代&#xff0c;国内出现了越来越多的新玩法&#xff0c;比如最近大家都在热议的AI绘画创意文字。 过去的一周&#xff0c;我把这些新玩法都研究了一遍&#xff0c;并总结了一套完整的制作流程。 主流的…

马斯克重返人工智能赛道,官宣成立xAI

KlipC报道&#xff1a;马斯克宣布成立xAI人工智能公司。 KlipC的合伙人Andi Duan表示&#xff1a;“马斯克称xAI公司的目标是了解宇宙的真实本质&#xff0c;同时也向ChatGPT等热门人工智能应用发起挑战。 Duan先生指出自OpenAI去年年底推出ChatGPT以来&#xff0c;马斯克就在A…

全网首发!精选32个最新Python实战项目(附源码),拿走就用!

Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性&#xff0c;已被广泛使用。那么要想学会并掌握Python&#xff0c;可以实战的练习项目是必不可少的。接下来&#xff0c;我将给大家介绍32个非常实用的Python项目&#xff0c;帮助大家更好的学习Python。大家也…

C/C++ 辗转相除与更相减损求最大公约数公倍数

古人有两种求最大公约数的方法 最小公倍数 &#xff08;a * b&#xff09; / 最大公约数 1.辗转相除&#xff08;欧几里得-《几何原本》&#xff09; 我认为辗转相除的的稳定性要强过更相减损&#xff0c;因为减法在数差距较大时效率会较低。 辗转相除注意考虑0的问题&#x…

AIGC全新升级!Share Creators现已提供更加强大的AIGC功能及体验!

AIGC全称AI Generated Content,即人工智能生产的内容,被认为是继PGC、UGC之后的新型内容创作方式。在技术上&#xff0c;AIGC能够以优于人类的制造能力和知识水平承担信息挖掘、素材调用、复刻编辑等基础性机械劳动&#xff0c;从技术层面实现以低边际成本、高效率的方式满足海…

科技云报道:成立11年,青云的变与不变

科技云报道原创。 成立于2012年的青云科技&#xff0c;迎来了自己的11周年。 对于高速发展的云计算行业来说&#xff0c;“十年”这一节点更是承载了太多的命题。 过去11年&#xff0c;青云在云计算巨头和IT大厂的环伺之下一路拼杀&#xff0c;终以“混合云第一股”的身份登上…

Rancher 系列文章-RHEL7.8 离线有代理条件下安装单节点 Rancher

一 基础信息 1.1 前提 本次安装的为 20220129 最新版&#xff1a;Rancher v2.6.3VM 版本为 RHEL 7.8, 7.9 或 8.2, 8.3, 8.4(Rancher 官网要求&#xff09;VM YUM 仓库&#xff1a;已配置对应版本的 RHEL 和 EPEL YUM 仓库VM 提供 root 权限已配置 ntp&#xff08;防止因为时…

Microsoft Edge 浏览器的怎么传文件

可以替代微信的文件传输助手&#xff0c;不再需要每次传输文件时登录微信&#xff0c;在手机和电脑上点击”Drop”即可。

如何备份与恢复MySQL数据库数据

目录 一、MySQL备份 备份方式 完全备份 差异备份 增量备份 二、常见的备份方法 物理冷备 专用备份工具 mysqldump 或 mysqlhotcopy 启用二进制日志进行增量备份 第三方工具备份 三、MySQL完全备份 四、数据库完全备份分类 物理冷备份与恢复 mysqldump备份与恢复 …

海外应用商店的ASO优化表现跟踪

花更少的时间整合App Store数据&#xff0c;花更多的时间去解锁有助于我们实现高下载量的目标。了解我们应用商店表现的真实水平&#xff0c;以便我们可以自信地完善和调整应用营销策略。 全面跟踪所有重要的应用指标&#xff0c;踪各个国家/地区的展示次数、商店浏览量、安装…