簡體   English   中英

這是一個好習慣嗎? “ / * /某物/ * /某物// * /”

[英]Is this a good practice? “/*/something/*/something//*/”

/*/ comment here
do some thing.
/*/
do some thing.
//*/

人們為什么要這樣寫代碼? 這是一個好習慣嗎?

它通常僅在暫時測試某些東西時使用。 也就是說,您永遠不要將這樣的代碼提交給版本控制,因為這可能會造成混淆。

例如,如果要測試兩種不同的計算方法,則可以使用此方法在它們之間進行切換。 就個人而言,我很少這樣做(如果有的話)。


對於那些不知道的內容,可以通過添加一個正斜杠在兩個代碼部分之間切換:

/*/ comment here
do some thing.
/*/
do some thing else.
//*/

//*/ comment here
do some thing.
/*/
do some thing else.
//*/

脾氣暴躁的做法。 死代碼與任何生產質量代碼無關。 如果確實存在舊的,失效的代碼適用的情況,則應將其重構為可以使用配置而不是重新編譯來打開/關閉的代碼。

我寧願做

#ifdef DOIT_ONE_WAY
do one way
#else
do another way
#endif

但這是一個品味問題

這使我感到困惑,並且需要我花一些時間來解析,所以不,我不認為這是一個好習慣。

我認為,凱恩答案中提到的任何輕松切換都是不值得的。 開發人員瀏覽器應易於發表評論。

對我來說,這只是令人困惑,而且絕對不是標准。

每個人都有自己的處事方式...我猜他們是這樣做的,所以您要做的就是在第一個注釋中添加一個/並刪除最后一個/,然后將注釋塊切換到另一組指令。

編輯:實際上,您要做的就是在第一個注釋中添加一個/,然后將其刪除以將其切換回去。

這令人困惑,並且缺乏編程美感。 做到這一點的一種好方法是使用C預處理器並對其進行編碼,如下所示:

#if 0

code block disabled

#endif

code block enabled

我認為這和Arkadiy提到的#ifdef方法是不好的,因為對多文件搜索所做的事情看起來都像是實時代碼,但可能並不取決於前幾行。

如果代碼是有效的#ifdef平台相關性,請確保這樣做,

但是如果它只是測試代碼等,我更喜歡突出顯示並插入C ++ //注釋,在Visual Studio中為Ctrl-K,C

這只是在兩個代碼塊之間切換的簡便方法(正如Kane Wallmann所說)。

將其保留在生產代碼中可能不是一件好事(如果需要,可以將其刪除並從源代碼管理中獲取),但是在開發時,這是一種能夠快速切換兩個實現(或存根某些代碼等)的便捷方法。 。

不一定是不好的做法,但是期望閱讀您的代碼的人會有不同的回答。 例如,我認為它確實很酷,但絕不會將這樣的代碼提交到存儲庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM