C++程序的基本组成简介

2023-11-20

C++程序的基本组成简介

C++程序的基本组成

这个C++程序例子,由一个程序单位(程序文件)【注①】组成,这是一个简单例子未使用类【注②】,其中包括:

1、头文件:可以认为头文件是你在调用函数时的一个桥梁。格式为:

#include〈引用文件名〉

c++的程序是由一个又一个的函数组成的,比如说刚刚这个程序里 就可以说包含了两个函数(其中一个函数包含在另一个函数里头),一个是主函数(main 函数),还有一个是输出函数cout。在c++中,除了主函数及自定义的函数,其他的函数都是包含于某些头文件里的,它们被称为库函数,想要调用这些函数,只要在程序的开头写上包含该函数的头文件就可以了。比如说包含cout函数的头文件是<iostream>(输入输出流),而我在函数中调用了cout这个函数,因此我需要在开头写上#include<iostream>(包含输入输出流)即可。

C语言传统采用扩展名为h的文件作为头文件,新版的纯粹C++头文件没有扩展名,但一些老式以及从C转化过来的有扩展名。头文件名的命名约定:

在C语言和C++中,头文件或包含文件是一个文件,通常是源代码的形式,由编译器在处理另一个源文件的时候自动包含进来。一般来说,程序员通过编译器指令将头文件包含进其他源文件的开始(或头部)。

一个头文件一般包含类、子程序、变量和其他标识符的前置声明。需要在一个以上源文件中被声明的标识符可以被放在一个头文件中,并在需要的地方包含这个头文件。

#include<stdio.h> //这种带了引号的通常是编译系统自带的头文件。

用户也可以自己定义头文件,如:

#include "abc.h" //这种带了引号的就是你自己定义的头文件。注意文件的位置要与你的主代码在同一个文件夹。

关于头文件 (c + +) 更多情况可参见头文件 (C++) | Microsoft Learn

如何自定义C语言.h头文件?_c语言定义头文件_吉大秦少游的博客-CSDN博客

2、命名空间:名称空间是用来区分不同名称空间中的同名属性,主要是解决多人同时编写大型程序时名字产生冲突问题,如防止不同人写的函数出现重名出现问题的情况。使用格式为:

using namespace 命名空间名;

使用iostream头文件时,cout、cin、endl都放在名称空间std里面。可以用std::cout这种方式来指定使用的cout是std里面的cout,使用using namespace std就不需要用std::指定。

关于命名空间更多情况,可参见:C++ 命名空间简介_在代码中某段屏蔽namespace_软件开发技术深度爱好者的博客-CSDN博客

c++中的namespace命名空间_1.6c++ 的namespace_tianguiyuyu的博客-CSDN博客

3、主函数:系统默认的你这个程序运行的入口,换句话说,当你的源代码通过编译,成为一个程序,在计算机上运行时,它是从int main()(其中int代表这个函数的返回值类型)这里开始执行。

主函数声明后,下面有一对花括号({ }),花括号里面所表达的就是你这个函数想要干什么。

返回值:本程序主函数的最后有一句话:return 0,它的意思是主函数结束后向操作系统返回一个0值,也就是说,如果你的程序顺利地结束了,你的操作系统会得到一个0值,如果运行出错,那么得到的就也许是另外一个值了。不过,函数的返回值当然也可以是其他值,但是主函数的返回值我们一般默认为0,而且大多数算法竞赛中也会要求主函数的返回值为0。最后说一句,函数返回一个值返回给的是调用这个函数的地方,因为调用主函数的是操作系统,因此,函数也就是向操作系统返回一个值。

4、一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。内容较少的简单注释常用“//”,内容较长的常用“/*……*/ ”。用“//”作注释时,有效范围只有一行,即本行有效,不能跨行。而用“/*……*/”作注释时有效范围为多行。只要在开始处有一个“/*”,在最后一行结束处有一个“*/”即可。注释不会被编译器解析和执行。

通过注释,你可以向其他开发人员或自己记录代码的意图、功能、实现方法等相关信息。在编写代码时,建议添加适当的注释来帮助理解和维护代码。但同时要注意,过多或冗余的注释也可能会降低代码的可读性。因此,合理使用注释是一个良好的编程习惯。

注①】需要提醒的是,一个C++复杂的程序可以由一个程序单位或多个程序单位构成。每一个程序单位作为一个文件。在程序编译时,编译系统分别对各个文件进行编译,因此,一个文件是一个编译单元。

注②】类(class)是C++新增加的重要的数据类型,是C++对C的最重要的发展。有了类,就可以实现面向对象程序设计方法中的封装、信息隐蔽、继承、派生、多态等功能。在一个类中可以包括数据成员和成员函数,他们可以被指定为私有的(private)和公用的(public)属性。私有的数据成员和成员函数只能被本类的成员函数所调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++程序的基本组成简介 的相关文章

随机推荐

  • 初识express/路由/中间件

    路由的概念 模块化路由 中间件 要有输入输出 简化版本 全局生效中间件 局部生效中间件 注意事项 中间件分类 内置中间件 解析请求体 url encoded 自定义中间件 使用querystring模块解析请求体数据 编写接口
  • Linux笔记

    文章目录 一 初识Linux 1 操作系统概述 1 1 计算机由哪两个主要部分组成 1 2 操作系统是什么 有什么作用 1 3 常见的操作系统有哪些 2 Linux初识 3 虚拟机介绍 3 1 什么是虚拟机 3 2 为什么要使用虚拟机 4
  • 小程序扫码只允许扫码运单条形码

    wx scanCode success res gt console log res let result res result 只允许 字母 数字 字母 数字 if result 0 9a zA Z g test result wx sh
  • [网络安全自学篇] 二十七.Sqlmap基础知识、CTF实战及请求参数设置(一)

    这是作者的系列网络安全自学教程 主要是关于网安工具和实践操作的在线笔记 特分享出来与博友共勉 希望您们喜欢 一起进步 前文分享了Shodan搜索引擎的基本用法及Python命令行 本篇文章详细讲解了Sqlmap的基本用法 CTF实战 并且分
  • 由浅及深PCB布线设计

    第一部分 在当今激烈竞争的电池供电市场中 由于成本指标限制 设计人员常常使用双面板 尽管多层板 4层 6层及8层 方案在尺寸 噪声和性能方面具有明显优势 成本压力却促使工程师们重新考虑其布线策略 采用双面板 在本文中 我们将讨论自动布线功能
  • 动态规划——数字三角形C语言

    一 分析 先说一下相关动态规划的一些概念 参考下方博文 原文链接 https blog csdn net every day article details 88174082 一个模型三个特征 理论的讲解 动态规划作为一个非常成熟的算法思想
  • Sentence-BERT论文阅读笔记

    目录 1 第一篇论文 Sentence BERT Sentence Embeddings using Siamese BERT Networks 1 1 论文基本信息 1 2 动机 1 3 模型 1 4 实验 1 4 1 训练所用的数据集
  • css如何实现三角形的方法

    在开发页面的时候 遇到很多的列表都需要用到箭头 可以直接用图片作背景铺垫 纯CSS也能实现 并且没有兼容性顾虑 不用CSS3 相比而言 比图片更好用 原理 一个高宽相等的正方形 选取你所需要的某一边 截取之 就是一个梯形 当高宽都为0 且其
  • springboot日志操作

    springboot日志 日志介绍 1 日志的输出等级 2 运用lombok快速添加日志对象log 3 日志输出格式控制 4 日志文件 4 1 直接指定文件名 4 2 指定最大空间和格式 日志介绍 日志就是记录程序日常运行的信息 sprin
  • Android中图片的裁剪与压缩

    文章目录 一 图片的剪裁 1 属性介绍 二 图片压缩 1 图片质量分类 2 图片默认质量 3 占用内存 4 图片的尺寸压缩或者拉伸 三 Bitmap压缩 1 质量压缩 2 采样率压缩 3 缩放法压缩 一 图片的剪裁 ImageView默认的
  • error: ‘for’ loop initial declarations are only allowed in C99 mode (改Makefile)

    c 强制C99在CMake 使用 for 循环初始声明 2019 04 25 C C 编程之家 https www jb51 cc 编程之家收集整理的这篇文章主要介绍了c 强制C99在CMake 使用 for 循环初始声明 编程之家小编觉得
  • uCOSii中的互斥信号量

    uCOSii中的互斥信号量 一 互斥型信号量项管理 MUTUAL EXCLUSION SEMAPHORE MANAGEMENT OSMutexAccept 无条件等待地获取互斥型信号量 OSMutexCreate 建立并初始化一个互斥型信号
  • Peewee

    Part1前言 在 Python 的 ORM 框架中 比较主流的有 Sqlalchemy peewee pony 等等 但是其中 peewee 和 Django 的 Models 框架很像 如果了解 Django 的同学肯定对 peewee
  • mybatis 返回结果为Map

    表 members 中的gender 列是这样 Female Female Male Female Male Male Male Male Male 现在我们想统计 members 中男女人数分别是多少 很显然返回的结果应该是这样的 Fem
  • No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc

    1 报错原因 启动SpringCloud项目时报 No Feign Client for loadBalancing defined Did you forget to include spring cloud starter loadba
  • hooks实践总结

    何为hooks 在React中hook是指不编写 class 的情况下使用 state 以及其他的 React 特性 而Vue3也推出了具有相同功能的组合式API 如果你用过Vue3就会知道在 setup 中你应该避免使用 this 因为h
  • 汇编语言(第三版)读书笔记 2 - 第2章 寄存器

    第2章 寄存器 前一章所说的总线 相对于CPU内部来说是外部总线 内部总线实现了CPU内部各个器件 运算器 控制器 寄存器 之间的联系 外部总线实现了CPU和主板上其他器件的联系 不同的CPU 寄存器的个数 结构是不相同的 8086 CPU
  • Redis实现定时任务

    Redis定时任务的核心在于 Schedule 注解 Redis Zset List数据结构 Redis管道技术 就从定时任务的执行流程开始写起 1 前端用户发起定时任务创建定时任务任务 像定时任务模块发起定时任务请求并且携带必要参数 首先
  • 【Python】逆向爬虫-----常见的加密方法

    一 MD5加密 MD5加密是一种被广泛使用的线性散列算法 可以产生出一个128位 16字节 的散列值 hash value 用于确保信息传输完整的一致性 且MD5加密之后产生的是一个固定长度 32位或16位 的数据 若要破解MD5加密 需要
  • C++程序的基本组成简介

    C 程序的基本组成简介 C 程序的基本组成 这个C 程序例子 由一个程序单位 程序文件 注 组成 这是一个简单例子未使用类 注 其中包括 1 头文件 可以认为头文件是你在调用函数时的一个桥梁 格式为 include 引用文件名 c 的程序是