分号是c语言的结束符不是分隔符,分号在C和Pascal中的区别

分号在C和Pascal中的区别

yanlb2000

在C语言和Pascal语言中,都会大量使用分号";"。比如,几乎每个语句结束之后,都有个分号。

很多人认为,分号是语句的结束符,每个语句都必须以分号来结束,C语言和Pascal语言中都是如此。

比如,记得几年前看到《电脑报》有一篇介绍Pascal入门的文章,就说,每个语句必须用分号结束。

但这种认识其实是不对的,C和Pascal对分号在语句分隔方面有不同的定义。

C语言规定,分号是语句的结束符。因此,每个语句必须以分号结束。

而Pascal语言规定,分号是语句的分隔符。这就不同了,按此定义,只有在语句之间,才需要用分号分隔。而如果仅仅是一条语句,或者是最后一条语句,那么就没必要用分号了。事实就是如此。

比如,这样的代码是完全正确的。

procedure

TForm1.FormCreate(Sender: TObject);

begin

label1.Caption := 'Hello world.';

label1.Font.Color := clRed

end;

相反,如果在clRed后面加一个分号,严格说反而是画蛇添足的。

理论上说,任何一个begin...end语句块之间,最后一个语句都没有必要加分号。

但是,如果加上一个分号又如何呢?一点问题都没有。

按照Pascal语法,分号是语句分隔符,所以,如果分号后面没有语句,那其实隐含了是一个空语句,在语法上当然还是允许的。而从实践上来说,任何一个Pascal语法编译器都会忽略这种"多余的"分号,将其优化掉,不作处理,也不会报错。

我写这些的目的,只是提醒大家,分号的区别。特别是,Pascal语言中分号是语句的分隔符而不是结束符,最后一个语句是不必加分号的。

当然,在实际编程中,完全不必拘泥于这种区别。你喜欢怎么用就怎么用,只要知道理论上有这些区别就可以了。

比如说我,写Pascal代码的时候,最后一个语句基本上都是加分号的。原因么:

1,

每个语句结束都加个分号,习惯了。C语言中如此,Pascal中大部分语句还是如此,写多了,成为习惯是很自然的。

2, 编译器会将多余的分号忽略,不会造成任何开销或效率上的损失。

3,

为了以后在原有语句后面再添加点语句的方便。如果原来没有最后的那个分号,添加语句的时候又不注意,编译的时候就会出错,少了个分隔符。虽然马上能查出来,但毕竟多了点步骤,耽误些时间。还不如当初就每个语句都加分号,包括最后一个语句。

所以,我对分号的态度是,知道理论上的定义和不同,就可以了。实际使用中不必太拘泥,按各人喜好,实用为上。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值