C语言中如何注释
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中如何注释相关的知识,希望对你有一定的参考价值。
main( )
int
a=0,b=0;
a =10; /*给a赋值
b=20; 给b赋值 */
printf("a+b=%d\n",a+b); /*输出计算结果*/
这代表注释的哪部分呢?
一是单行注释:直接在该行需要注释的地方加上"//"就行了。例如:
"int a,b;//这是一个注释行"。那么,"//"后面的部分"这是一个注释行"就被注释掉了,不起作用,但是"//"前面的“int a,b;"不受影响。
另外还有一种是多行同时注释:
/*
int a,b;
int c,d;
*/
其中"/*"和"*/"起限定范围的作用,该范围内的语句都会被注释掉,将不再起作用。当然,多行注释也是可以用来单行注释的 参考技术A main( )
int
a=0,b=0;
a =10; /*给a赋值
b=20; 给b赋值 */
printf("a+b=%d\\n",a+b); /*输出计算结果*/
看上图,绿色部分都是被注释部分。
在新的C++标准中,推荐使用//进行注释而不是/**/,因为后者容易产生误编译。
main( )int
a=0,b=0;
a =10; //*给a赋值
b=20; // 给b赋值 */
printf("a+b=%d\\n",a+b); //*输出计算结果*/
参考技术B /*给a赋值
b=20; 给b赋值 */
这些内容都被注释了,包括b=20 ,/* 中间的部分都是注释,可以多行*/追问
请问a=10 在不在注释范围内呢
追答因为a=10 不在/**/范围内啊。 /*这是注释开始的地方 */这是注释结束的地方
追问万分 感谢 那a+b 最终结果等于多少呢
追答a是10 b是0 结果是 10
追问为什么b是0呢 不是20么 没懂
本回答被提问者采纳 参考技术C 答:在用C语言编程时,常用的注释方式有如下几种:(1)单行注释 //…
(2)多行注释 /*…*/
(3)条件编译注释 #if 0…#endif
拓展资料:
对于(1),注释只能显示在一行内,通常出现在一条语句的右边或者上方,对于注释符”//”,一个注释里只要有多余2个’/’都可以。
对于(2),”/*…*/”不能嵌套使用,正如”if…else”中的”else”总是和隔它最近的”if”配对一样,”/*”总是和离它最近的”*/”相配对。
针对(1)和(2)各自的缺陷,资深的程序员提出如(3)所示的注释,该注释的好处是能注释大块的程序,并且没有嵌套的限制,也就是说在”#if 0…#endif”的”…”处可以有”//”或”/*…*/”这样的注释。 参考技术D //为同一行后面的内容,
/*为中间的内容*/
你的给a赋值和给b赋值应该用//,两斜杠
注释转换——(小项目)
一门计算机语言如果想要运用的得心应手,离不开长久的练习,针对C语言的用法,下面主要是用C语言来解决注释转换的问题,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;/*xxxxx*/ // 4.多行注释问题 /* int i=0; int j = 0; int k = 0; */int k = 0; // 5.连续注释问题 /**//**/ // 6.连续的**/问题 /***/ // 7.C++注释问题 // /*xxxxxxxxxxxx*/ // 8.C注释本身不匹配 /* int i = 0;
下面是具体的程序代码:
#pragma once #include <assert.h> #include <errno.h> typedef enum State //解决匹配问题 /*int i = 0;/*int j = 0;*/ { C_Start, C_End, }; void convert(FILE * fin, FILE * fout) //针对各种的注释进行转换 { char first, second; assert(fin); assert(fout); State tag = C_End; do { first = fgetc(fin); //fgetc函数的功能是读取字符 switch (first) { case ‘/‘: //解决/*int i = 0;*/ second = fgetc(fin); if (second == ‘*‘) { if (tag == C_End) { fputc(‘/‘, fout); fputc(‘/‘, fout); tag = C_Start; } else { fputc(‘/‘, fout); fputc(‘*‘, fout); } } else if (second == ‘/‘) { char next; fputc(first, fout); fputc(second, fout); //解决c++注释嵌套c注释的问题 do { next = fgetc(fin); fputc(next, fout); if (next == EOF) //解决c++注释后面多写EOF的情况 { return; } }while (next != ‘\n‘); } else { fputc(first, fout); fputc(second, fout); } break; case ‘\n‘: //处理多行注释问题 fputc(‘\n‘, fout); if (tag == C_Start) { fputc(‘/‘, fout); fputc(‘/‘, fout); } break; case ‘*‘: second = fgetc(fin); if (second == ‘/‘) { char next = fgetc(fin); //处理连续注释问题 if (next == ‘/‘) { fputc(‘\n‘, fout); fseek(fin, -1, SEEK_CUR); //fseek函数是将fin指针进行向前移位,具体的功能查文档进行解答 } else if (next != ‘\n‘ && next != EOF) //解决/*int i = 0;*/int j = 0; { fputc(‘\n‘, fout); fputc(next, fout); } else { //解决/*int i = 0;*/ /n int j = 0; fputc(‘\n‘, fout); } tag = C_End; } else if (second == ‘*‘) { fputc(‘*‘, fout); fseek(fin, -1, SEEK_CUR); } else { fputc(first, fout); fputc(second, fout); } break; default: fputc(first, fout); //将first读取的字符串写入fout指定的文件中 break; } } while (first != EOF); } void Annotation(const char * inputFile, const char * outputFile) { FILE * Fin, * Fout; //定义两个文件指针 Fin = fopen(inputFile, "r"); //“r”表示读操作 if (Fin == NULL) { printf("打开文件%s失败!errno:%d\n", inputFile, errno); return; } Fout = fopen(outputFile, "w"); //"w"表示写操作 if (Fout == NULL) { fclose(Fin); //fclose关闭文件 printf("打开文件%s失败!errno:%d\n", outputFile, errno); return; } convert(Fin, Fout); fclose(Fin); fclose(Fout); }
本文出自 “无心的执着” 博客,谢绝转载!
以上是关于C语言中如何注释的主要内容,如果未能解决你的问题,请参考以下文章