我的编程空间,编程开发者的网络收藏夹
学习永远不晚

c++代码各种注释示例详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

c++代码各种注释示例详解

1、前言

今天想带大家来了解一下注释,当然,是C语言中的注释,这个大家都并不会感到陌生,但是,当有一天面试官问你?小伙子啊,你能给我讲讲什么是注释吗?大家应该都会懵的吧,毕竟注释有什么可讲的呢?但是事实真的如此吗?今天就由我来带大家了解一下注释吧!

2、正文(危)

1.以代码例子为例

(1)代码段1

首先来几段注释的例子大家来判断下对错(从语法角度和是否实现注释的效果来看)


#include <stdio.h>
int main()
{
	int  i; 
	char* s = "abcdefgh //hijklmn";
	//Is it a\
	valid comment? 
	int j; 
	return 0;
}

当大家把这段代码放在vs上去运行的时候,报错的代码只有最后一行代码,即int j;我们就知道这行代码是有语法错误的,那么其它的代码就完全没有问题了吗?当然,其它的代码没有了语法错误,但是它们的注释效果真正实现了吗?

补充知识:注释被替换是在预处理阶段实现的,注释被替换,本质是替换成空格,上述报错的那一句本质上应该是 in t i;编译器自然会报错,报错是在预处理阶段进行语法检查时出错的,出现了语法错误。

这个是编译器上的标识图,上面的几行代码虽然没有报语法错误,但是有的代码却没有真正实现其注释的效果,下面我们将一行一行的带大家来进行分析!

首先看第一行:int      i;经过替换后。中间的转换为空格,可见并没有语法错误,且能够达到注释的目的。

接下来看第二行代码,这个地方大家可能会感到疑惑了,我命名加了注释符的啊,但是为什么没有达到我想要的效果呢?这个地方的原因是因为//是在字符串中,此时的第一个/被理解成了转义字符,而第二个则真正被理解成了/,至于为什么第二个/没有被理解成转义字符呢?因为第一个/防止了后面的字母被转义,所以后免的一个/才没有被理解成是转义字符,好像扯的有点远了。这个地方需要告诉大家的是在字符串中是无法进行注释的,因为在字符串中的/有特殊的含义!

有的朋友就好奇了,既然C++风格的注释行不通,那么C语言的风格能否行得通呢?答案是不能,下面给大家证明一下吧!

很明显,依旧没有成功行注释,原因同上。

接下来来看第三行代码,我们可以得出一个结论,C++风格的注释是可以续行的!

(2)代码段2


#defineIDreplacementlist
//这段代码指的就是用replacement list替换ID

当这段代码放到VS上是这样的:

上述两段代码都能编译通过,这说明# 和 define之间可以带空格。(因为注释最终要被空格所代替)

//是C++风格的注释,而则是C语言风格的注释,前者可以一次写多个,不过从第一个//往后就都是注释的内容。

(3)代码段3



*/

 这段代码在vs中是下面这样的:

 注意:不能嵌套注释。进行匹配。

在这段代码中,最终第一行和第三行中的*/进行匹配,剩下最后一个*/没有与之进行配对的。

(4)代码段4


int x = 10 ;
int y = 10;
int z = 5;
int *p = &z;
y = x/*p;

上面这种代码一定要注意,乍一看没有什么问题,但是接下来我们放到编译器上看一下:

这种代码一定要注意,/*容易被编译器认为是注释,所以会报错。

解决方案有两种:

1.y = x / *p;即在/后面加一个空格,不要让/*连在一起。

2.y = x/(*p);(推荐用第二种)。

2.其它的注释方法

(1)条件编译


#include <stdio.h>
#include <windows.h>
#define MONEY 1(只有定义了前面的宏,ifdef到endif中间的这段代码才能够正常运行,未定义则跳过)
int main()
{
#ifdef MONEY
	printf("for test1\n"); //test1
	printf("for test2\n"); //test2
#endif
	system("pause");
	return 0;
}

(2)if条件

可以通过if(0)来进行注释,但并不推荐。

到此这篇关于c++代码各种注释示例详解的文章就介绍到这了,更多相关c++代码注释内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

c++代码各种注释示例详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C++常用的11种设计模式解释及示例代码详解

c++常用的设计模式包括单例模式、工厂模式、抽象工厂模式、适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式、观察者模式和命令模式等,这篇文章主要介绍了C++常用的11种设计模式解释及示例,需要的朋友可以参考下
2023-02-07

UnityInputFiledTMP属性和各种监听示例详解

这篇文章主要为大家介绍了UnityInputFiledTMP属性和各种监听示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-01-09

java实现的各种排序算法代码示例

折半插入排序折半插入排序是对直接插入排序的简单改进。此处介绍的折半插入,其实就是通过不断地折半来快速确定第i个元素的插入位置,这实际上是一种查找算法:折半查找。Java的Arrays类里的binarySearch()方法,就是折半查找的实现
2023-05-31

C#中[]的几种用法示例代码

不像数学里面有方括号和花括号,在C#语法中”[]”与”{}”有专门的用途,下面这篇文章主要给大家介绍了关于C#中[]的几种用法,需要的朋友可以参考下
2023-01-28

iOS中各种UI控件属性设置示例代码

//视图已经加载完了,可以进行ui的添加了 - (void)viewDidLoad {[superviewDidLoad];// Do any additional setup after loading the view.//初始化UIL
2022-05-29

Python实现各种排序算法的代码示例总结

在Python实践中,我们往往遇到排序问题,比如在对搜索结果打分的排序(没有排序就没有Google等搜索引擎的存在),当然,这样的例子数不胜数。《数据结构》也会花大量篇幅讲解排序。之前一段时间,由于需要,我复习了一下排序算法,并用Pytho
2022-06-04

Python代码实现各种酷炫功能的示例分析

这篇文章主要介绍了Python代码实现各种酷炫功能的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、生成二维码二维码又称二维条码,常见的二维码为QR Code,QR
2023-06-29

Android EditText详解及示例代码

 EditText在API中的结构java.lang.Objectandroid.view.Viewandroid.widget.TextViewandroid.widget.EditText已知直接子类:AutoCompleteTe
2022-06-06

Android SQLite详解及示例代码

在Android中使用SQLite数据库的入门指南,打算分下面几部分与大家一起分享, 1、什么是SQLite 2、Android中使用SQLite一、什么是SQLiteSQLite是一款开源的、轻量级的、嵌入式的、关系型数据库。它在2000
2022-06-06

Android Menu详解及示例代码

Android Menu 详细介绍: 1、选项菜单 OptionsMenu 2、上下文菜单 ContextMenu 3、子菜单 SubMenu组成Android用户界面的除了View以外,还有菜单和对话框,这一讲我们就共同学习一下菜单的使用
2022-06-06

Android GPS详解及示例代码

LBS(Location Based Services)直译的话就是基于地理位置的服务,这里面至少有两层意思,第一要能轻易的获取当前的地理位置,譬如经纬度海拔等,另一个就是在当前位置的基础上提供增值服务,譬如找附近的加油站、餐馆、酒店等。这
2022-06-06

Android Service详解及示例代码

Android Service 详细介绍: 1、Service的概念 2、Service的生命周期 3、实例:控制音乐播放的Service 一、Service的概念Service是Android程序中四大基础组件之一,它和Activity一
2022-06-06

Android Content Provider详解及示例代码

Android:Content Provider的使用。1、Content Provider 简介2、使用现成的Content Provider3、定义自己的Content Provider一、Content Provider 简介我们说A
2022-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录