当前位置: 首页 > 编程笔记 >

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

仉成益
2023-03-14
本文向大家介绍浅谈C语言中的注释风格小结,包括了浅谈C语言中的注释风格小结的使用技巧和注意事项,需要的朋友参考一下

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

/* comment*/

另一种是单行注释符号:

// comment

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

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

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

示例1:

#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进行的数值修改其实是一个没用的冗余代码。如果发现类似的问题,可能进行一下简单的屏蔽,修改代码如下:

#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:

#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语言中的注释风格小结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 编程语言的注释是为了程序员维护代码而出现的。注释内容其本身并不参与程序的编译与执行,注释的出现只是为了记录一些文本信息而出现的。 在自由软件出现后,注释的更为重要的功能就是声明软件的授权使用协议。这在除我国在外的,其他很多国家具有法律效力。 1. C 语言的注释标准 C 语言的注释目前有两种: 多行注释(经典式注释) 单行注释(C++ 式注释) 1.1 多行注释 以 /* 注释内容 */ 形式出现

  • 本文向大家介绍浅谈MyBatis3 DynamicSql风格语法使用指南,包括了浅谈MyBatis3 DynamicSql风格语法使用指南的使用技巧和注意事项,需要的朋友参考一下 主要演示DynamicSql风格代码如何使用,基本能应对大部分使用场景。DynamicSql基本介绍点我查看。 本文主要沿着增、删、改、查的思路进行介绍,尽量涵盖日常使用所需。 我这里还是要推荐一下大家看官方文档,尽量有

  • 本文向大家介绍浅谈C语言=与==的区别详解,包括了浅谈C语言=与==的区别详解的使用技巧和注意事项,需要的朋友参考一下 在 C 语言中,最容易产生混淆的操作符要属“=”与“==”。其中,“=”并不等于符号,而是赋值操作符,如 x=3。除此之外,还可以在一个语句中向多个变量赋同一个值,即多重赋值。例如,在下面代码中把 0 同时赋给 x、y 与 z。 相对于只有一个等号的赋值操作符,关系操作符中的等于

  • 本文向大家介绍c语言/c++溢出问题浅谈 原创,包括了c语言/c++溢出问题浅谈 原创的使用技巧和注意事项,需要的朋友参考一下 在c语言或是c++中有一类很典型的问题,那就是溢出。 如果说溢出对程序有什么危害的话,好像就是在编译的时候会报错,运行的时候会崩溃。但是当有了研究安全的人之后,安全性问题就会随之出现了。 在开发的阶段,由于各种压力的迫使之下,往往开发团队都是拼命地赶工期,先把功能实现了,

  • 本文向大家介绍浅谈c语言中转义字符的用法及注意事项,包括了浅谈c语言中转义字符的用法及注意事项的使用技巧和注意事项,需要的朋友参考一下 c语言中的转义字符: \a 响铃符 \b 退格 \f 换页符 \n 换行符 \r 回车符(回到该行的首位置) \v 纵向制表符 \\ 反斜杠 \? 问号(?经vs10测试可以直接打印) \"(\') 双引号(单引号) \ooo 八进制数(ooo表示一个用8进制数表

  • 本文档修改于 AT&T Indian Hill 实验室内部成立的一个委员会的一份文档,旨在于建立一套通用的编码标准。

  • 条款4:尽量使用c++风格的注释 旧的c注释语法在c++里还可以用,c++新发明的行尾注释语法也有其过人之处。例如下面这种情形: if ( a > b ) { // int temp = a; // swap a and b // a = b; // b = temp; } 假设你出于某种原因要注释掉这个代码块。从软件工程的角度看,写这段代码的程序员也做得很好,他最初的代码里也写了一个注

  • 本文向大家介绍浅谈C语言之字符串处理函数,包括了浅谈C语言之字符串处理函数的使用技巧和注意事项,需要的朋友参考一下 下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数)。所有的C语言编译系统中一般都提供这些函数。 1、puts函数——输出字符串的函数  一般的形式为puts(字符串组) 作用:将一个字符串输出到终端。如,char一个string,并赋予初值。调用puts(st