C语言中的符号

1.标准C语言的基本符号

 

 

2.注释符号几个似非而是的注释问题

 

C语言的注释可以出现在C语言代码的任何地方。这句话是不对的、

1 int/*...*/i;  编译器的确会将注释剔除,但不是简单的剔除,而是用空格代替原来的注释

2 char*s="abcdefgh //hijklmn";我们知道双引号引起来的是字符串常量,那双斜杠也不例外

3 //Isita \

validcomment?     这是一条合法的注释,因为\是一个接续符

4 //in/*…*/ti;

5 /*这是*/#/*一条*/define/*合法的*/ID/*预处理*/replacement/**/list/**/

6 y=x/*p    报错 这个表达式其实只是表示把x的值赋给y/*后面的内容都当作注释。但是,由于没有找到*/,所以提示出错。也就是说只要斜   /)和星号(*)之间没有空格,都会被当作注释的开始。这一点一定要注意。      修改为y=x/   *p或者y= x/(*p)

3. 出色注释的基本要求

1    注释应当准确、易懂,防止有二义性。错误的注释不但无益反而有害。

2    边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要及时删除。

3    注释是对代码的提示,而不是文档。程序中的注释应当简单明了,注释太多了会让人眼花缭乱。

4    一目了然的语句不加注释。   例如:i++;/*i1*/多余的注释

5     对于全局数据(全局变量、常量定义等)必须要加注释。

6     注释采用英文,尽量避免在注释中使用缩写,特别是不常用缩写。因为不一定所有的编译器都能显示中文,别人打开你的代码,

      你的注释 也许是一团乱码。还有,你的代码不一定是懂中文的人阅读。

7     注释的位置应与被描述的代码相邻,可以与语句在同一行,也可以在上行,但不可放在下方。同一结构中不同域的注释要对齐。

8     当代码比较长,特别是有多重嵌套时,应当在一些段落的结束处加注释,便于阅读。

9     注释的缩进要与代码的缩进一致。

10   注释代码段时应注重为何做(why,而不是怎么做(how

       说明怎么做的注释一般停留在编程语言的层次,而不是为了说明问题。尽力阐述怎么做的注释一般没有告诉我们操作的意图,

        而指明怎么做的注释通常是冗余的。

11    数值的单位一定要注释。注释应该说明某数值的单位到底是什么意思。比如:

        关于长度的必须说明单位是毫米,米,还是千米等;关于时间的必须说明单位是时,分,秒,还是毫秒等。

12     对变量的范围给出注释。

13     对一系列的数字编号给出注释,尤其在编写底层驱动程序的时候(比如管脚编号)。

14     对于函数的入口出口数据给出注释。关于函数的注释在函数那章有更详细的讨论。

4.接续符和转义符

C语言里以反斜杠(\)表示断行。编译器会将反斜杠剔除掉,跟在反斜杠后面的字符自动接续到前一行。

但是注意:反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格。(不太准确)

//Isita \

 validcomment?                     前边可以有空格

 

#def\

ine MAC\                                  前边不可以有define

 RO这是一条合法的\               前边可以有

宏定义

 cha\

r* ch="这是一个合法的\\          前边不可以有  char

n字符串";                                   前边可以有

综上可知当下一行的字符与上一行联系很密切的时候(关键字等等)下一行前边不可有空格  

而紧随后是肯定不可以有空格 

再例

//这是一条合法的\

   单行注释                  前边可以有空格

 /\

/这是一条合法的单行注释   前边不可以有因为  //注释符不能分开

 

注释小故事一则

安息吧,路德维希..贝多芬

在《CodeComplete》这本书中,作者记录了这样一个故事:

有位负责维护的程序员半夜被叫起来,去修复一个出了问题的程序。但是程序的原作

者已经离职,没有办法联系上他。这个程序员从未接触过这个程序。在仔细检查所有的说明

后,他只发现了一条注释,如下:

MOVAX723h;R.I.P.L.V.B.

这个维护程序员通宵研究这个程序,还是对注释百思不得其解。虽然最后他还是把程

序的问题成功排除了,但这个神秘的注释让他耿耿于怀。说明一点:汇编程序的注释是以分

号开头。

几个月后,这名程序员在一个会议上遇到了注释的原作者。经过请教后,才明白这条

注释的意思:安息吧,路德维希..贝多芬(Restinpeace,LudwigVanNeethoven)。贝多芬于

1827年逝世,而1827的十六进制正是723。这真是让人哭笑不

5.单引号和双引号

C语言中的单引号用来表示字符常量

C语言中的双引号用来表示字符串常量

‘a’表示字符常量

在内存中占1个字节

’a’+1表示’a’ASCII码加1,结果为‘b’

“a”表示字符串常量

在内存中占2个字节

“a”+1表示指针运算,结果指向“a”结束符’\0’

本质上单引号括起来的一个字符代表整数

双引号括起来的字符代表一个指针

C编译器接受字符和字符串的比较,可意义是错误的

C编译器允许字符串对字符变量赋值,其意义是可笑的

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值