2012-01-08 60 views
1

我有一個關於C語言評論的問題。 當我們寫例如C中雙斜槓後的分號

//this is the first step 

這意味着一條評論。

但是,當我們寫

//this is the first step; 

這是否也意味着一個評論?我的意思是,當我們雙斜槓後面添加分號,這是否意味着該程序的註釋部分或主要部分?

+4

仍然是一條評論,//之後的任何內容都將成爲評論。 – Serdalis 2012-01-08 19:51:38

+1

無論是在兩個斜槓之後還是在換行之前,編譯器都會忽略它。 – nmagerko 2012-01-08 19:51:53

+2

我倒下了,因爲這個問題沒有顯示研究。你甚至沒有嘗試過你最喜歡的編譯器(雖然不是正確性的指標,但它將構成研究)。 – 2012-01-08 19:59:21

回答

2

雙斜線註釋掉線肯定。編譯器會忽略整行(包括分號,是的)。

對於多行註釋,或評論的同一行的一些代碼,使用/ *註釋這裏*/

Wiki有一些很好的信息在這裏:http://en.wikipedia.org/wiki/C_syntax#Comments

注(來自維基):

C++樣式行註釋以//開始並延伸到 行的末尾。這種評論風格源於BCPL並且在C99中變得有效C 語法;它不提供原始的K個& R C也不在ANSI C:

0

解析雙斜線註釋後沒有字符。它被預處理器剝離。編譯器從來沒有看到它。

+0

我會說分詞器。 – 2012-01-08 19:52:38

+1

黑色斜槓怎麼樣? – 2012-01-08 19:58:18

6

雙斜線後的所有內容均爲註釋。

這包括分號,運算符,預處理指令,關鍵字甚至是貓。

編輯:

東西我覺得有趣:

//comment \ 
also part of the comment\ 
this too part of the comment 

我想回斜線實際上解析。這是線條的延續特徵。值得一提的是我想。

我猜SO分析器不能識別字符,但它確實存在 - 至少在MSVC中。不知道它是否是標準的一部分。

編輯2:

由於@vsz指出,三字符將被解析即使評論:

/* 
??/ is translated to \ 
the following is not safe: 
*/ 

//do we really need this??/ 
i++; 

前面的代碼i++;不會得到執行,因爲??/\取代因此i++;成爲評論的一部分。

+4

我可憐那些被預處理器殺死的可憐的貓。 – 2012-01-08 19:53:05

+0

在這種情況下,貓是什麼? – 2012-01-08 19:53:07

+1

只是爲了說明一下。 – 2012-01-08 19:55:27

0

// -style註釋到行尾。分號不是專門處理的;分號結尾陳述,而註釋不是陳述。

0

它仍然是一個評論:這也不:

// Hello, world 

也不是這:

// Hello, world; 

將被執行

0

的//界定它後面在同一行一切。一切。那就是你可以確信,無論你選擇評論什麼都會留下評論。

與/ * * /可能出現混淆的對比。例如:

/*這是一個/ *壞註釋*/*/

//但這是一個/ *良好的註釋*/

2

分號是在註釋只是另一個角色。

這意味着將分號放在註釋行末尾的做法是某人在行編碼度量上作弊 ...基本計算將分號作爲語句的代理進行計數。他們應該爲自己感到羞恥。