2012-06-16 48 views
1

是否有任何(合理)直接的方法來生成註釋來解釋C++程序的結構?例如,我想利用這個代碼輸入:生成註釋以解釋C++程序的結構

int main(){ 
cout << "Hello World!"; 
return 0; 
} 

,併產生這種作爲輸出:

int main(){ 
//create a function called main that returns an integer and takes no parameters. 
cout << "Hello World!"; 
//print the string "Hello World" to the standard output. 
return 0; 
//the function main returns 0 
} 

如果能夠做到這一點,它可能使(任何C的語法++程序)對初學者來說稍微難一些。

如果這不能用於C++(使用現有的工具),是否(任何類似的工具)可用於其他編程語言?

+5

所有這些評論對任何將使用它們的人都是毫無意義的。 – chris

+0

爲什麼有人需要這個?如果它寫成「int main()」,我知道它是一個需要等等的函數。 – Spo1ler

+0

我可能需要提供一個更好的例子。與經驗豐富的程序員相比,這將最適合初學者使用。 –

回答

2

cdecl工具(和在線版本http://cdecl.org/)來解釋聲明。看一看。

+0

這實際上是我尋找的東西之一,謝謝! –

0

你在你的評論中放入的東西沒有多大意義 - 函數返回整數或不帶參數的事實是函數原型的自我解釋。然而,如果你的意思是自動評論的工具,它解釋了函數是如何工作的,那麼就有一些東西。

我不確定這是否適用於C++,因爲它適用於C#,但有一個名爲GhostDoc的Visual Studio插件,可根據變量/函數/ etc名稱等生成「人類語言」註釋。 你可以在這裏看到它:http://www.youtube.com/watch?v=4aA4VZoVDQw(視頻的第二部分)。

即使它不完全解決您的問題,也許它會給你一個提示尋找什麼。

1

您的示例非常冗長,只會使任何源代碼完全無法讀取。有些解決方案不那麼冗長,但比較像www.doxygen.org/,我聽說它很受歡迎。

0

如果我對你的問題有了很好的理解,那麼你需要一個工具,通過在每一行中注入適當的文檔來「解釋」代碼。如果你對初學者說,我可能會感興趣,並且在現有的代碼上運行它,但是用這種方式編寫代碼是完全沒有用的(這就是爲什麼你需要獲得低價)。

這些註釋只是現有代碼的重複,因此完全沒用。如果您更改了代碼並且不更改註釋,會發生什麼情況?最糟糕的是,如果你再次運行你的工具,你是否期望它刪除舊評論或將它們都保留下來?

良好的評論應該添加有用的信息給代碼(作爲編碼者的意圖,或詭計,以避免等),但大聲朗讀代碼只是噪音。

所以要回答你的問題,我認爲不,沒有工具可以做到。但是,某些IDE可能會提供類似的功能,您可以將這些信息放在工具提示上,同時懸停在一行代碼上,但絕對不是代碼中的註釋。

0

評論不應該描述代碼將做什麼。註釋應該解釋,

  • 究竟是什麼意圖,其任務必須執行
  • 程序員預期的,爲什麼一個特定的分支將被採用
  • 爲什麼程序員以這種方式
  • 寫的代碼是什麼
0

它看起來像我的意圖是不實際在程序中包括這樣的評論。只有爲初學者提供一些方法才能問「這個語法是什麼意思?」對於特定的東西有一些有限的解決方案,比如用於聲明語法的cdecl.org,但沒有一般性。這不會是微不足道的。也許可以在Clang庫之上相對容易地(僅相對)構建處理C++的東西。