服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - 浅谈C语言中的注释风格小结

浅谈C语言中的注释风格小结

2021-08-10 15:29grey_csdn C/C++

今天小编就为大家分享一篇浅谈C语言中的注释风格小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

C语言中常用的注释风格有两种,一种是通过如下模式进行一段代码的注释:

/* comment*/

另一种是单行注释符号:

// comment

学生时代的注释我一般是选用后者,那时候编码量十分有限,即使是简单的小段落注释使用的IDE也支持批量添加单行注释符。而在编码之中,简单的单行注释进行注释的时候键盘的操作更为简单一点。

不过,工作之后接触了相应的编码规范之后,C语言的注释我基本上放弃了单行注释的方法,最多仅仅在调试的时候做简单的使用。

其实,单行注释是从C++中借鉴来的,算是C++风格的注释方式。而这种方式在C语言中有时候会带来一定的差异性,甚至是引入难以察觉的Bug。把我自己从网络或者书籍中看到的两个比较典型的方式列述总结一下。

示例1:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
#include"stdio.h"
 
int main(void)
{
    int a = 0;
 
    a += 5; \
    a = 123;
 
    printf("value of a: %d\n",a);
 
    return 0;
}

代码的编译运行结果如下:

E:\WorkSpace\01_编程语言\01_C语言\exp_26>gcc exp_26.c

E:\WorkSpace\01_编程语言\01_C语言\exp_26>a

value of a: 123

代码其实很简单,第一次对a进行的数值修改其实是一个没用的冗余代码。如果发现类似的问题,可能进行一下简单的屏蔽,修改代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
#include"stdio.h"
 
int main(void)
{
    int a = 0;
 
    //a += 5; \
    a = 123;
 
    printf("value of a: %d\n",a);
 
    return 0;
}

代码的编译运行结果如下:

E:\WorkSpace\01_编程语言\01_C语言\exp_26>gcc exp_26.c

E:\WorkSpace\01_编程语言\01_C语言\exp_26>a

value of a: 0

这个结果很多时候会出乎很多人的意料,因为发现结果居然不再是123!其实,原因就在于屏蔽的那一行代码最后面多了一个续行的符号。这样使得注释的作用持续到了下一行。其实,很多编译器在这方面都会有相对精准的判断给出提示,比如说我最近在使用的VIM就能够通过颜色的变化提示出第二行也被注释掉了。而擅长语义分析的Source Insight在这方面倒是没有做好,不知道最新推出的V4版本中是否对此有所改进。

示例2:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include"stdio.h"
 
int main(void)
{
    int a = 123;
    int b = 23;
    int c;
 
    c = a //*
           //*/b
    ;
   
    printf("value of c:%d",c);
 
    return 0;
}

从《C专家编程》中摘出了这个例子,按照书中的介绍,c的赋值运算相关3行在C语言中表示a/b而在C++中表示a。不过,或许是成书时间比较早,自我我的机器以及软件上,这个说法显然是不成立了。即使是咋C语言中,上面的表达式也是表示c = a。不过,程序的可读性确实是给了我们一个不小的挑战。我专门注意了一下编辑器对此的识别,在此环节中,VIM以及Source Insight全都识别准确。值得一提的是,前面的这两个例子如果使用NotePad ++,编辑器的提示也全都是准确的。

代码的编译执行结果如下:

E:\WorkSpace\01_编程语言\01_C语言\exp_27>gcc exp_27.c

E:\WorkSpace\01_编程语言\01_C语言\exp_27>a

value of c:123

由此看来,很多嵌入式的编码规范中要求不能够用C++单行注释风格的注释方式还是有一定道理的。虽说是带来了一定的不方便,但是确实是能够避免一些小问题的出现。

以上这篇浅谈C语言中的注释风格小结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/grey_csdn/article/details/69053347

延伸 · 阅读

精彩推荐
  • C/C++深入理解goto语句的替代实现方式分析

    深入理解goto语句的替代实现方式分析

    本篇文章是对goto语句的替代实现方式进行了详细的分析介绍,需要的朋友参考下...

    C语言教程网7342020-12-03
  • C/C++c++ 单线程实现同时监听多个端口

    c++ 单线程实现同时监听多个端口

    这篇文章主要介绍了c++ 单线程实现同时监听多个端口的方法,帮助大家更好的理解和学习使用c++,感兴趣的朋友可以了解下...

    源之缘11542021-10-27
  • C/C++C语言中炫酷的文件操作实例详解

    C语言中炫酷的文件操作实例详解

    内存中的数据都是暂时的,当程序结束时,它们都将丢失,为了永久性的保存大量的数据,C语言提供了对文件的操作,这篇文章主要给大家介绍了关于C语言中文件...

    针眼_6702022-01-24
  • C/C++C++之重载 重定义与重写用法详解

    C++之重载 重定义与重写用法详解

    这篇文章主要介绍了C++之重载 重定义与重写用法详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...

    青山的青6062022-01-04
  • C/C++学习C++编程的必备软件

    学习C++编程的必备软件

    本文给大家分享的是作者在学习使用C++进行编程的时候所用到的一些常用的软件,这里推荐给大家...

    谢恩铭10102021-05-08
  • C/C++C/C++经典实例之模拟计算器示例代码

    C/C++经典实例之模拟计算器示例代码

    最近在看到的一个需求,本以为比较简单,但花了不少时间,所以下面这篇文章主要给大家介绍了关于C/C++经典实例之模拟计算器的相关资料,文中通过示...

    jia150610152021-06-07
  • C/C++详解c语言中的 strcpy和strncpy字符串函数使用

    详解c语言中的 strcpy和strncpy字符串函数使用

    strcpy 和strcnpy函数是字符串复制函数。接下来通过本文给大家介绍c语言中的strcpy和strncpy字符串函数使用,感兴趣的朋友跟随小编要求看看吧...

    spring-go5642021-07-02
  • C/C++C语言实现电脑关机程序

    C语言实现电脑关机程序

    这篇文章主要为大家详细介绍了C语言实现电脑关机程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    xiaocaidayong8482021-08-20