※ 引述《StubbornLin.bbs@ptt.cc (Victor)》之銘言:
> ※ 引述《costbook (antitheist)》之銘言:
> : 如果是OOP的程式,有一種工具可以
> : 自動把code畫成UML類別圖
> : 不過好像有的有綁IDE、有的沒有...
> Doxygen
> 生成文件,印出來看
> 應該會比直接用IDE或記事本之類的讀好
用 doxygen 的話,
其實還是得看 code 本身是什麼年代的東西,
早期為了讓 prototype 相容於新舊版 C compiler,
會搞出一堆 P1 P2 P3 P4 的 macros 在 function prototype 上,
看起來像是 void foo P2(int, x, int, y) 這樣的東西,
doxygen 會有誤判的情形。
把這個 function 當成叫做 P2 的 function,
然後要是一個檔案裡面全部都是兩個參數的 functions,
那掃出來就會發現 doxygen 只抓到一個叫做 P2 的 function,
其它的 functions 全部遺漏掉了。
doxygen 對 #ifdef 這類的東西判定能力也很弱,
不少程式是用 configure script 掃出一個 config.h 檔來,
然後做條件編譯,
但是 doxygen 沒辦法分辨出這種東西來,
永遠都是先 parse 最早看到的那一塊。
我是知道 doxygen 的設定檔裡有一堆選項疑似可以解決這些問題,
不過我測到今年三四月的版本為止都沒發現有啥效果,
用了好幾年下來 doxygen 一直都沒改善這些問題。
--
Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net
School: National Tsing Hua University Department: Computer Science
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Software pipelining for VLIW architectures
Homepage: https://it.muds.net/~uranus
--
╔═══╗ ┼────────────────────────╮
║狂狷 ║ │* Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮
║ 年少║ ┼╮ < IP:140.119.164.252 > ╰─╮
╚╦═╦╝ ╰ * From:61-230-220-9.dynamic.hinet.net
─╨─╨─ KGBBS ─ ◎ 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩 ◎