c语言 葬礼分号,其实从C语言用分号结尾开始,就是一个悲剧了……
……
我該說啥好呢,不懂?pascal?的是你
http://www.freepascal.org/docs-html/ref/refsu46.html#x138-14800013.2.1
http://www.freepascal.org/docs-html/ref/refsu48.html#x140-15000013.2.3
http://www.dragonkiller.nl/Delphi/delphi2009.html#StatementList
pascal?里一條語句本身是不需包括“;”的,只有?compound?statements?這種結構的才需要?;?來分隔每一條語句。
CompoundStatement???????:???????"begin"?StatementList?"end"
;
StatementList???:???????Statement
|???????StatementList?";"?Statement
;
Statement???????:???????Label?":"?StatementPart
|???????StatementPart
|???????/*?empty?*/
;
Label???:???????tkNumber
|???????tkIdent
;
StatementPart???:???????CompoundStatement
|???????IfStatement
|???????ForStatement
|???????RepeatStatement
|???????GotoStatement
|???????AssignStatement
;
IfStatement?????:???????"if"?Expression?"then"?Statement
|???????"if"?Expression?"then"?Statement?"else"?Statement
;
GotoStatement???:???????"goto"?,?Label
|???????"exit"?,?[?"("?,?Expression?,?")"?]
|???????"break"
|???????"continue"
;
begin
if?b?then
a?:=?1
else
a?:=?0
end
按照你的說法,上面這條?if?語句是沒有結束的
再看?C?的(標準文檔6.8?statements?and?blocks):
statement:
labeled-statement
compound-statement
expression-statement
selection-statement
iteration-statement
jump-statement
compound-statement:
{?block-item-listopt}
block-item-list:
block-item
block-item-list?block-item
block-item:
declaration
statement
selection-statement:
if?(?expression?)?statement
if?(?expression?)?statement?else?statement
jump-statement:
goto?identifier?;
continue?;
break?;
return?expressionopt;
compound-statement?根本就沒有用“;”來分看每句。再看?delphi?里?goto?和?C?里?jump?的區別,delphi?里不包括“;”,C?里面都有明確的“;”。很明顯,“;”是?C?語言每條語句的組成的一部分,而?pascal?中只是用來作為語句間的分隔
【?在?FlyingBoy?(revising?hgext.inotify)?的大作中提到:?】
:?完全不對
:?pascal里面;表示語句結束,所以else前面有分號是錯的
總結
以上是生活随笔為你收集整理的c语言 葬礼分号,其实从C语言用分号结尾开始,就是一个悲剧了……的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: i5处理器笔记本(i5处理器笔记本性能排
- 下一篇: android:background大小