C語言中右大括號(})后是否加分(;)號問題


 在C語言中定義結構體時,右大括號后是需要加分號的,在C++中使用class關鍵字定義類時,右大括號后也是需要加分號的,而在定義函數時,右大括號后是不需要加分號的。

對這個問題的解釋就是右花括號}能代表結尾的就不需要加分號。

例如:while循環、for循環、if語句中,右大括號}就能代表這個循環或者語句結束了,所以不需要分號來輔助。

而在

do
{

}while();

中,執行語句后,再判斷是否執行下一次循環,這里的右大括號}不能代表結尾,需要分號輔助。 

定義結構體時,

struct ttt
{

}a;

在結構體的定義完成之后,可以立馬定義一個變量,所以遇到右大括號不一定就是結尾,因此,此時只能用分號來告訴編譯器該結尾了。

 

比較官方、正規的說法如下:

語句、定義不需要分號結尾,聲明需要分號結尾。

語句 :

if、for、while都是語句,所以{}本身是語句的一部分。

定義:

void func() 

{

}

聲明:

結構體的定義是聲明,所以需要分號結尾。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM