-
C语言注释
2020-07-05 19:51:18C语言注释 1. 行注释 2. 块注释 3. 条件编译注释 参考 C语言注释 1. 行注释 //形式的注释只对单行有效。 #include <stdio.h> int main() { //行注释 c99新增 return 0; } 2. 块注释 /**/形式的...目录
C语言注释
1. 行注释
//形式的注释只对单行有效。
#include <stdio.h> int main() { //行注释 c99新增 return 0; }
2. 块注释
/**/形式的注释,在/*和*/之间的内容都会被编译器忽略。
#include <stdio.h> int main() { /* 块注释 */ return 0; }
对于/**/形式的注释,大部分C编译器不支持嵌套注释,部分支持嵌套注释,可使用以下测试代码区分:
#include <stdio.h> int main() { int ans; ans = /*/*/0*/**/1; //ans = 0 编译器不支持嵌套注释 //ans = 1 编译器支持嵌套注释 printf("\r\nans = %d", ans); return 0; }
3. 条件编译注释
条件编译指令#if后面跟整型常量表达式。如果表达式为非零,则表达式为真,编译器条件执行代码块;反之,编译器忽略代码块。#if 0配合#endif可实现代码的成块注释。
#include <stdio.h> int main() { #if 0 条件编译注释 #endif return 0; }
参考
http://www.cnblogs.com/liuxiaoming/archive/2012/08/13/2636831.html
-
C语言 注释
2019-02-05 09:57:50在C语言源程序中,注释可分为三种情况: (1)在函数体内对语句的注释; (2)在函数之前对函数的注释; (3)在源程序文件开始处,对整个程序的总体说明。 函数体内的语句,是由顺序结构、选择结构和循环结构等三...必要的注释,可有效地提高程序的可读性,从而提高程序的可维护性。
在C语言源程序中,注释可分为三种情况:
(1)在函数体内对语句的注释;
(2)在函数之前对函数的注释;
(3)在源程序文件开始处,对整个程序的总体说明。
函数体内的语句,是由顺序结构、选择结构和循环结构等三种基本结构构成的。在什么地方加以注释的原则是:如果不加注释,理解起来就会有困难,或者虽无困难、但浪费时间。(1)顺序结构
在每个顺序程序段(由若干条语句构成)之前,用注释说明其功能。除很复杂的处理外,一般没有必要每条语句都加以注释。
(2)选择结构
在C语言中,选择结构是由if语句和switch语句来实现的。一般地说,要在前面说明其作用,在每个分支条件语句行的后面,说明该分支的含义,如下所示:
1)if语句
/……(说明功能)/
if(条件表达式) /条件成立时的含义/
{……}
else /入口条件含义/
{……} 2)switch语句
/*……(说明功能) */
switch(表达式){ case 常量表达式1: /*该入口值的含义*/ 语句组; …… case 常量表达式n: /*该入口值的含义*/ 语句组; default: /*该入口值的含义*/ 语句组; }
如果条件成立时(或入口值)的含义,已经很明确了,也可不再加以注释。
-
C语言注释删除
2017-06-15 10:00:57C语言编写的删除C语言注释的代码,有限自动机,编译原理,支持所有类型注释 -
实现去除c语言注释的小工具
2020-09-04 14:37:08主要介绍了实现去除c语言注释的小工具,说是C语言,但其实所有C语系的都可以,比如Java,需要的朋友可以参考下 -
大写C语言注释
2017-01-07 18:17:58C语言注释说明 注意问题 状态变化图 状态定义 状态变迁 完整代码C语言注释说明C语言的注释分为两种,一种是单行注释,一种是多行注释。 单行注释:顾名思义就是当遇到换行之后即表示注释已结束,用//表示 多行注释:...昨天无意中看到一道题:“编写一个程序,使一段合理C语言中的注释全部大写“。突然兴趣来了,于是决定自己动手来试试。这道题目看起来很简单,但是实际动起手来,还是有点难度。
C语言注释说明
C语言的注释分为两种,一种是单行注释,一种是多行注释。
- 单行注释:顾名思义就是当遇到换行之后即表示注释已结束,用//表示
- 多行注释:注释以/*开始并且以*/结束,中间的任意字符就是注释
注意问题
该题要注意多个地方:
1. 汉字,由于C语言处理汉字比较麻烦,所以这里就不处理汉字,即假设源文件中没有汉字,全部由字母组成。
2. 注释嵌套,单行字符中除非遇到换行,否则后面的字符一律为注释内容,多行注释不管遇到什么字符,除非注释结束,否则内容都将是注释
3. 多行注释如果有多个注释结束符(*/),则匹配最近的一个。
4. 若字符串中包含有注释符,则该注释符不是注释符,而是字符串。状态变化图
整个过程的变化可以用一个状态图来说明,如下所示,如有错漏,感谢指正:
状态定义
- SRC_TEXT:文本状态,即输入的是普通文本
- SRC_TEXT_STRING_START:字符串开始状态,表示接下来的字符属于字符串
- SRC_COMMENT_BEGIN:注释开始状态,表示当前字符是”/”,接下来可能是注释开始(输入字符为”/”)
- SRC_SINGLE_START:单行注释开始状态,表示上一个字符是”/”,且当前的字符依然是”/”,即表示单行注释开始
- SRC_MULTI_START:多行注释开始状态,表示上一个字符是”/”,且当前字符是”*”,即表示多行注释开始
- SRC_MULTI_WILL_END:多行注释即将结束状态,表示当前是”*”,接下可能是多行注释结束(输入字符为”/”)
- SRC_MULTI_END:多行注释结束状态,表示上一个字符是”*”,当前字符是”/”,即表示多行注释结束
由此我们可以定义各种状态,如下所示:
状态变迁
- 空白状态时,如果用户输入的不是字符”/”,则表示为普通字符,进入到SRC_TEXT状态,否则进入到SRC_COMMENT_START状态
- SRC_TEXT状态时,输入任意字符,状态依然不变。若此时输入为引号,表示字符串开始,进入到SRC_TEXT_STRING_START,在该状态若再次输入引号,返回到SRC_TEXT。
- 当不在SRC_TEXT_STRING_START状态时,输入字符”/”,即表示可能开始注释,此时若下一个是字母,即返回到SRC_TEXT。如果是”/”,表示单行注释开始,进入到SRC_SINGLE_START状态。如果是”*”,表示多行注释开始,进入SRC_MULTI_START状态。
- 在SRC_SINGLE_START状态,如果输入非换行符,则输入依然是注释,否则表示单行注释结束,返回到SRC_TEXT状态
- 在SRC_MULTI_START状态,如果输入非”*”字符,则输入依然是注释,多行注释与换行无关,如果输入是”*”,则表示接下来可能要结束多行注释,进入到SRC_MULTI_WILL_END状态
- 在SRC_MULTI_WILL_END状态,如果输入不是”/”字符,表示注释继续,返回到SRC_MULTI_START状态,否则表示多行注释结束,进入SRC_MULT_END状态
- 在SRC_MULTI_END状态,输入非”/”字符,表示输入为程序正文,进入到SRC_TEXT状态,否则重新进入到SRC_COMMENT_BEGIN状态。其实SRC_MULTI_END状态就是SRC_TEXT状态,只是为了更清晰,加入SRC_MULTI_END状态。
完整代码
说了这么多废话,不如直接上代码来的实际,如下所示:
其中,第一段注释是我自己乱写的注释,第二段注释是我从stdio.h中copy出来的注释,
处理之后的结果如下所示(_main.cpp): -
C语言注释转换
2018-06-07 12:31:42 -
C语言注释转化为C++注释(C语言实现)
2017-07-29 23:09:30*/是C语言注释风格,而我们都知道C语言这样的注释是有缺陷的(不能嵌套注释),为了弥补这一缺陷,可将C语言注释风格改为C++注释风格(//int a=0;).本文就来讲一下怎么运用C语言实现C注释转化为C++注释。 在一段... -
安全的c语言注释
2019-10-10 16:52:05安全的c语言注释 在代码块外部添加/* */注释可能会发生错误,使用下面的方法能在逻辑上删除代码块,因此这样做更安全。 #if 0 statements #endif -
[注释转化]C语言注释转换为C++语言注释
2017-07-29 20:08:31注释转化(C语言注释转换为C++语言注释) -
C语言注释方法
2015-01-20 09:14:51C语言注释方法有两种: 1.以/* 开始 */结束,此种方法有坏处,如果这个中间也有注释将会报错。 2.以#if 0 statements #endif -
实现c语言注释转换为c++注释
2016-08-11 12:28:50次篇文章将实现 c语言注释转换为c++注释例如,将下面的c语言注释转换为c++注释// 1.一般情况 /* int i = 0; */// 2.换行问题 /* int i = 0; */int j = 0; /* int i = 0; */ int j = 0; // 3.匹配问题 /*int i = 0;/*... -
c语言注释要点
2015-12-26 22:11:21C语言注释简介: 注释应该出现在三种位置 文件头部 函数头部 函数体内的和代码混在一起的注释 对于文件头部的注释至少列出: 版权声明、版本号、文件创建日期、作者、内容/功能、与其他文件的关系、修改日志等。... -
注释转换——C语言注释转换为C++注释状态
2018-08-07 19:09:11C语言注释风格为 / * 注释内容 * /,从 / * 开始,到 * / 结束,中间全是它的注释内容,也就是说,C注释状态可以进行多行注释; C++注释风格为 // 注释内容,不同的是,C++只能进行单行注释。 那么要如何... -
将C语言注释转换成C++注释
2018-06-09 20:57:35将input.c中的C语言注释转换成C++注释output。解题思路:C语言的注释用“/**/”,C++注释用“//”表示,通过无线状态机模来做这道题,首先将问题可能分成几个简单的小块:判断是否有‘/’,当有时,也要分成三种可能:... -
C语言注释转化为C++注释
2016-06-02 23:57:11在C语言中标准的注释...首先先给一堆用C语言注释的一对代码,进行分析(将此代码保存在input.c文件夹里) // 1.一般情况 /* int i = 0; */ // 2.换行问题 /* int i = 0; */int j = 0; /* int i = 0; */ int j = 0; -
将C语言注释转换为C++注释
2017-09-11 21:45:05将C语言注释转换为C++注释代码思路:CommentConvert.h #define _CRT_SECURE_NO_WARNINGS 1 #ifndef __COMMENTCONVERT_H__ #define __COMMENTCONVERT_H__ #include<stdio.h> #include<stdlib.h> enum STATE { ... -
C语言注释的匹配的正则表达式
2019-03-04 14:18:47C语言注释的匹配的正则表达式 -
C语言注释转换为c++的注释
2016-05-29 17:22:23问题要求:将C语言的注释转换为c++的注释方式常见的C语言注释问题,由此可见C语言的注释比较复杂,情况也比较多,如果按照以下的情况一种一种的去处理的话逻辑太过混乱,无法真正的整理清楚,所以需要转换思路。... -
【18.8.7】C语言注释向C++注释的转化
2018-08-07 23:40:08C语言注释对比C++注释,功能要明显差一些,因此,当程序中需要将C语言的注释转化时,就需要一个注释的转化软件。毕竟对于大量的代码,我们不可能一个一个的去更改。 在编程初期,我们应该想到,对于C注释开始的识别... -
注释转换(将C语言注释转化为C++的注释)
2018-08-05 20:26:08要将 input.txt里面的c语言注释全部转化为c++的注释,要考虑到各个不同的坑。例如: // 1.一般情况 int num = 0; /* int i = 0; */ // 2.换行问题 /* int i = 0; */int j = 0; /* int i = 0; */ int j = 0; // 3.... -
C语言基础知识:#if 0 或 #if 1(C语言注释)
2018-09-23 15:22:59C语言注释有三种方法 常见的方法有:1)单行注释: // 2)多行注释: /* */ 今天我想和初学者来聊聊一种相对不那么熟悉的C语言注释方法:利用条件编译注释代码。 3)#if 0 或 #if 1注释: 当屏蔽掉大块代码时... -
**C语言注释符号**
2018-10-20 13:22:55C语言注释符号 注释规则 1、编译器再编译过程中使用空格替换整个注释 2、字符串字面量的//和/…/不代表注释符号 3、/…/型注释不能被嵌套、 编译后结果 #可以看到,只有12行出错。因为注释符号被替换成...