C++注释

目录

1. 什么是注释

2. 语法

2.1 单行注释

2.2 多行注释

2.3 示例

3. 注释源代码的方法

3.1 使用多行注释

3.2 使用预处理器指令 #if #endif

3.3 使用条件判断语句 if (false)

4. 不能用宏定义,组成注释

5 // \ 会将源代码中的下一行也被当作注释中的一部分


1. 什么是注释

        注释是源代码内的文本内容,目的是方便人们根据注释阅读源代码。注释不会被编译到目标程序中,因为编译器将源代码生成目标程序时的翻译阶段3中,每段注释都会被替换为单个空白字符从程序中移除。

2. 语法

2.1 单行注释

格式:

// 单行注释

说明:

  • 单行注释通常用于注释单行文本,编译器将源代码生成目标程序时,会将 // 和换行符之间的所有内容替换为单个空白的字符从程序中移除。
  • 可以把多个 // 放在一起组成多行注释。

2.2 多行注释

格式:
/*
多行
注释
*/

说明:

  • 多行注释通常用于注释大块文本,以 /* 和 */ 环绕的文本是注释的内容,编译器将源代码生成目标程序时,会将注释替换为单个空白字符从程序中移除。
  • /* */ 也可以用于单行注释,比如: /* 注释内容 */

2.3 示例

#include <iostream>int main() {// 打印 hello worldstd::cout << "hello world" << std::endl;// 打印// histd::cout << "hi" << std::endl;/** 打印* HELLO WORLD*/std::cout << "HELLO WORLD" << std::endl;return 0;
}

g++ -E 001_注释.cpp -o 001_注释.i  // -E 告诉编译器,对 001_注释.cpp 文件进行预处理,并生成预处理文件 001_注释.i

使用 g++ 对以上源程序进行预处理,001_注释.i 文件截图如下

3. 注释源代码的方法

3.1 使用多行注释

#include <iostream>int main() {// 使用多行注释,去除不需要的源代码/*std::cout << "hi" << std::endl;*/
//    std::cout << "hello ";
//    std::cout << "world" << std::endl;std::cout << "Hello World" << std::endl;return 0;
}

3.2 使用预处理器指令 #if #endif

#include <iostream>int main() {// 使用预处理器指令去除不需要的源代码#if 0std::cout << "这句代码不会被执行,也不会被编译" << std::endl;#endifreturn 0;
}

3.3 使用条件判断语句 if (false)

#include <iostream>int main() {// 使用条件判断语句排除不被执行的源代码if (false)std::cout << "这句代码不会被执行,但会被编译进目标程序中" << std::endl;return 0;
}

4. 不能用宏定义,组成注释

        因为编译器将C++源代码生成目标程序的执行顺序中,先将注释 // 到换行符之间的内容用单个空白字符替换掉了后(翻译阶段3)再执行预处理指令(翻译阶段4),所以不能用宏定义,组成注释。

#include <iostream>#ifndef DEBUG#define Print //
#else#define Print std::cout
#endifint main() {Print << "Hello World" << std::endl; return 0;
}

g++ -E 002_注释.cpp -o 002_注释.i  // -E 告诉编译器,对 002_注释.cpp 文件进行预处理,并生成预处理文件 002_注释.i

使用 g++ 对以上源程序进行预处理,002_注释.i 文件截图如下

如上截图可见,我们期望是注释掉 //<< "Hello World" << std::endl; 这个语句,实际上,编译器在处理注释时,已经将 #define Print // 替换成 #define  Print ,所以编译器在处理预处理阶段时,将源代码处理成 << "Hello World" << std::endl; 那么对源代码进行编译时,编译器自然而然就会报以下错误:

5 // \ 会将源代码中的下一行也被当作注释中的一部分

#include <iostream>int main() {// 这行是注释\std::cout << "hello ";std::cout << "world" << std::endl;return 0;
}

g++ -E 003_注释.cpp -o 003_注释.i  // -E 告诉编译器,对 003_注释.cpp 文件进行预处理,并生成预处理文件 003_注释.i

使用 g++ 对以上源程序进行预处理,003_注释.i 文件截图如下

程序执行结果如下

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

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

相关文章

使用itextpdf进行pdf模版填充中文文本时部分字不显示问题

在网上找了很多种办法 都解决不了; 最后发现是文本域字体设置出了问题; 在这不展示其他的代码 只展示重要代码; 1 引入扩展包 <dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</v…

web——sqliabs靶场——第十三关——报错注入+布尔盲注

发现是单引号加括号闭合的 尝试联合注入 发现不太行&#xff0c;那尝试报错注入。 测试报错注入 unameadmin) and updatexml(1,0x7e,3) -- &passwdadmin&submitSubmit 爆数据库 unameadmin) and updatexml(1,concat(0x7e,database(),0x7e),3) -- &passwdadmin&a…

QT如何共享文件+拷贝文件

QString sharedFolderPathImg "\\\\" IP "/profileImage/"; // 更换为你的共享文件夹路径QDir dirImg(sharedFolderPathImg);dirImg.setFilter(QDir::NoDotAndDotDot | QDir::AllEntries);QVector<QString> curFileEntryArrayImg dirImg.entryList…

跟《经济学人》学英文:2024年11月23日这期 Why British MPs should vote for assisted dying

Why British MPs should vote for assisted dying A long-awaited liberal reform is in jeopardy in jeopardy&#xff1a;在危险中 jeopardy&#xff1a;美 [ˈdʒepərdi] 危险&#xff1b;危机&#xff1b;风险&#xff1b; 原文&#xff1a; THIS NEWSPAPER believes …

【es6进阶】vue3中的数据劫持的最新实现方案的proxy的详解

vuejs中实现数据的劫持,v2中使用的是Object.defineProperty()来实现的&#xff0c;在大版本v3中彻底重写了这部分&#xff0c;使用了proxy这个数据代理的方式&#xff0c;来修复了v2中对数组和对象的劫持的遗留问题。 proxy是什么 Proxy 用于修改某些操作的默认行为&#xff0…

D73【 python 接口自动化学习】- python 基础之正则表达式

day73 正则表达式-元字符匹配 学习日期&#xff1a;20241119 学习目标&#xff1a;正则表达式--133 正则表达式-元字符匹配 学习笔记&#xff1a; 元字符匹配 数量匹配 实践操作 总结 字符串的r标记表示&#xff0c;字符串内转移字符无效&#xff0c;作为普通字符使用正则…

Python浪漫之画明亮的月亮

目录 1、效果展示 2、完整版代码 1、效果展示 2、完整版代码 import turtledef draw_moon():# 设置画布turtle.bgcolor("black") # 背景颜色为黑色turtle.speed(10) # 设置绘制速度# 绘制月亮的外圈turtle.penup()turtle.goto(0, -100) # 移动到起始…

微信小程序包之加农炮游戏

微信小程序 - 气球射击游戏 项目简介 这是一个简单有趣的微信小程序射击游戏。玩家通过控制屏幕底部的加农炮&#xff0c;射击从上方降落的蓝色气球。游戏考验玩家的反应能力和瞄准技巧。 游戏规则 点击屏幕任意位置发射炮弹大炮会自动对准点击位置击中气球获得10分如果气球触…

autogen+ollama+litellm实现本地部署多代理智能体

autogen 是一个专门为大语言模型 (LLMs) 驱动的自治代理 (autonomous agents) 设计的 Python 库,由 Microsoft 开发和维护。它通过高度模块化和可扩展的架构,支持用户快速构建和运行多代理系统,这些代理可以在没有明确人类干预的情况下协作完成复杂任务。AutoGen 支持以最少…

分公司如何纳税

分公司不进行纳税由总公司汇总纳税“子公司具有法人资格&#xff0c;依法独立承担民事责任;分公司不具有法人资格&#xff0c;其民事责任由公司承担。”企业设立分支机构&#xff0c;使其不具有法人资格&#xff0c;且不实行独立核算&#xff0c;则可由总公司汇总缴纳企业所得税…

HashMap源码详解

提醒你一下&#xff0c;用电脑或者平板看&#xff0c;手机屏幕小&#xff0c;图片会看不清楚&#xff0c;源码不方便看 基础前置 看该篇文章之前先看看这篇基础文章 HashMap底层原理-CSDN博客 先来看HashMap里面的一些参数。 1.DEFAULT_INITIAL_CAPACITY 默认的数组初…

09 —— Webpack搭建开发环境

搭建开发环境 —— 使用webpack-dev-server 启动Web服务&#xff0c;自动检测代码变化&#xff0c;有变化后会自动重新打包&#xff0c;热更新到网页&#xff08;代码变化后&#xff0c;直接替换变化的代码&#xff0c;自动更新网页&#xff0c;不用手动刷新网页&#xff09; …

动态反馈控制器(DFC)和 服务率控制器(SRC);服务率和到达率简单理解

目录 服务率和到达率简单理解 服务率 到达率 排队论中的应用 论文解析:队列等待成本动态感知控制模型 动态反馈和队列等待成本意识: 服务速率调整算法: 动态反馈控制器(DFC)和 服务率控制器(SRC) SRC公式4的原理 算力资源分配系统中的调整消耗 举例说明 服务…

九、FOC原理详解

1、FOC简介 FOC&#xff08;field-oriented control&#xff09;为磁场定向控制&#xff0c;又称为矢量控制&#xff08;vectorcontrol&#xff09;&#xff0c;是目前无刷直流电机&#xff08;BLDC&#xff09;和永磁同步电机&#xff08;PMSM&#xff09;高效控制的最佳选择…

web-03

CSS回顾 选择器 标签选择器 标签{}ID选择器 标签中定义ID属性。 #ID值{}类选择器 标签中使用class属性 .类名{}关于DIV/span div任意的大小的长方形&#xff0c;大小css&#xff1a; width, height控制。—换行 span-- 一行内 CSS常用属性 width/height 宽度/高度 定义&…

Excel求和如何过滤错误值

一、问题的提出 平时&#xff0c;我们在使用Excel时&#xff0c;最常用的功能就是求和了&#xff0c;一说到求和你可能想到用sum函数&#xff0c;但是如果sum的求和区域有#value #Div等错误值怎么办&#xff1f;如下图&#xff0c;记算C列中工资的总和。 直接用肯定会报错&…

蓝桥杯每日真题 - 第22天

题目&#xff1a;&#xff08;卡片&#xff09; 题目描述&#xff08;12届 C&C B组B题&#xff09; 解题思路&#xff1a; 该问题要求用数字卡片从 1 开始拼出整数&#xff0c;直到某一时刻不能拼出时停止。要确定拼到哪个最大整数&#xff0c;需要统计 每个数字“1”被用…

Ubuntu20.04 Rk3588 交叉编译ffmpeg7.0

firefly 公司出的rk3588的设备&#xff0c;其中已经安装了gcc 交叉编译工具&#xff0c;系统版本是Ubuntu20.04。 使用Ubuntu20.04 交叉编译ffmpeg_ubuntu下配置ffmpeg交叉编译器为arm-linux-gnueabihf-gcc-CSDN博客文章浏览阅读541次。ubuntu20.04 交叉编译ffmpeg_ubuntu下配…

python代码制作数据集的测试和数据质量检测思路

前言 本文指的数据集为通用数据集&#xff0c;并不单是给机器学习领域使用。包含科研和工业领域需要自己制作数据集的。 首先&#xff0c;在制作大型数据集时&#xff0c;代码错误和数据问题可能会非常复杂。 前期逻辑总是简单的&#xff0c;库库一顿写&#xff0c;等排查的时…

Windows系统编程 - 进程遍历

文章目录 前言进程的遍历CreateToolhelp32SnapshotProcess32FirstProcess32Next进程遍历 总结 前言 各位师傅好&#xff0c;我是qmx_07&#xff0c;今天给大家讲解进程遍历的相关知识点 进程的遍历 快照&#xff1a;使用vmware虚拟机的时候&#xff0c;经常需要配置环境服务…