條款4 盡量使用c 風格的注釋

2021-04-07 08:07:44 字數 556 閱讀 3186

舊的c注釋語法在c++裡還可以用,c++新發明的行尾注釋語法也有其過人之處。例如下面這種情形:

if ( a > b )

假設你出於某種原因要注釋掉這個**塊。從軟體工程的角度看,寫這段**的程式設計師也做得很好,他最初的**裡也寫了乙個注釋,以解釋**在做什麼。用c++形式的句法來注釋掉這個程式塊時,嵌在裡面的最初的注釋不受影響,但如果選擇c風格的注釋就會發生嚴重的錯誤:

if ( a > b )

請注意嵌在**塊裡的注釋是怎麼無意間使本來想注釋掉整個**塊的注釋提前結束的。

c風格的注釋當然還有它存在的價值。例如,它們在c和c++編譯器都要處理的標頭檔案中是無法替代的。儘管如此,只要有可能,你最好盡量用c++風格的注釋。

值得指出的是,有些老的專門為c寫的預處理程式不知道處理c++風格的注釋,所以象下面這種情形時,事情就不會象預想的那樣:

#define light_speedp 3e8 // m/sec (in a vacuum)

對於不熟悉c++的預處理程式來說,行尾的注釋竟然成為了巨集的一部分!當然,正象條款1所說的那樣,你無論如何也不會用預處理來定義常量的。

Item2 盡量使用 C 風格的型別轉換

c 通過引進四個新的型別轉換操作符克服了 c 風格型別轉換的缺點,這四個操作符是,static cast,const cast,dynamic cast,和 reinterpret cast。在大多數情況下,對於這些操作符你只需要知道原來你習慣於這樣寫 type expression 而現在你總應該...

ITEM2盡量使用C 風格的型別轉換

原則 型別轉換要力求語義明確。c風格型別轉換允許使用者在任意兩個型別間進行轉換,不對轉換進行細分且語義不明確。c 風格的型別轉換操作符 static cast 基本與c風格型別轉換類似 const cast 去掉表示式的const或volatileness屬性 dynamic cast 安全的沿著類...

將c風格的注釋轉換成cpp風格

首先要將文字分成四個狀態 1.普通狀態 nullstatus 2.c狀態 cstatus 3.cpp狀態 cpstatus 4.eof狀態 eofstatus 四個狀態之間的關係如下 程式 如下 main.c include convert.h int main convert.h ifndef c...