cuteser 访问次数 : 242 注册日期 : 07-07-06 22:46 上次访问 : 09-10-29 21:05 |
doxygen和Graphviz这俩开源软件真可谓珠联璧合,尝试着用它俩分析了一下开源软件BugFree的代码,生成的文档(chm格式)刚刚漂亮,函数调用关系一清二楚。也看得出BugFree的主要开发者的大部分注释写得还比较正规,当然,没写注释的函数也很显眼:)。 这个坛子不能贴图,图放在俺博客上了。http://cuteser.blog.sohu.com/65084832.html 有需要这个chm文件的请留下邮箱。 BTW,这个chm文件中的中文显示有点问题,以前正常的啊,不知道是不是UTF8的缘故,俺再研究一下。 |
回帖 |
cuteser 访问次数 : 242 注册日期 : 07-07-06 22:46 上次访问 : 09-10-29 21:05 |
以下是doxygen抓出来的BugFree目前版本的所有函数: - _ - _adodb_getdate() : adodb-time.inc.php _adodb_getdriver() : adodb.inc.php _adodb_is_leap_year() : adodb-time.inc.php _smarty_sort_length() : Smarty_Compiler.class.php - a - adodb_backtrace() : adodb.inc.php adodb_date() : adodb-time.inc.php adodb_date2() : adodb-time.inc.php adodb_dow() : adodb-time.inc.php adodb_get_gmt_diff() : adodb-time.inc.php adodb_getdate() : adodb-time.inc.php adodb_gmdate() : adodb-time.inc.php adodb_gmmktime() : adodb-time.inc.php adodb_is_leap_year() : adodb-time.inc.php adodb_mktime() : adodb-time.inc.php adodb_pr() : adodb.inc.php ADODB_TransMonitor() : adodb.inc.php adodb_write_file() : adodb.inc.php adodb_year_digit_check() : adodb-time.inc.php ADOLoadCode() : adodb.inc.php ADOLoadDB() : adodb.inc.php ADONewConnection() : adodb.inc.php - b - bugAddFile() : FunctionsMain.inc.php bugCreateMailMessage() : FunctionsMain.inc.php bugEncryptUserPWD() : FunctionsMain.inc.php bugGetFiles() : FunctionsMain.inc.php bugGetGroupList() : FunctionsMain.inc.php bugGetHistory() : FunctionsMain.inc.php bugGetInfo() : FunctionsMain.inc.php bugGetModuleChild() : FunctionsMain.inc.php bugGetModulePath() : FunctionsMain.inc.php bugGetModules() : FunctionsMain.inc.php bugGetProjectInfo() : FunctionsMain.inc.php bugGetProjectModulePathes() : FunctionsMain.inc.php bugGetProjects() : FunctionsMain.inc.php bugGetResolutionList() : FunctionsMain.inc.php bugGetStat() : FunctionsMain.inc.php bugGetUserACL() : FunctionsMain.inc.php bugGetUserEmail() : FunctionsMain.inc.php bugGetUserList() : FunctionsMain.inc.php bugGetUserQuery() : FunctionsMain.inc.php bugJudgeAdminUser() : FunctionsMain.inc.php bugJudgeUser() : FunctionsMain.inc.php bugLogHistory() : FunctionsMain.inc.php bugMailChange() : FunctionsMain.inc.php bugSetBuild() : FunctionsMain.inc.php - d - dbCreateIN() : FunctionsMain.inc.php dbGetFieldInfo() : FunctionsMain.inc.php dbMergeSQL() : FunctionsMain.inc.php - k - KeyWordHeightLight() : FunctionsMain.inc.php - n - NewADOConnection() : adodb.inc.php NewDataDictionary() : adodb.inc.php NewPerfMonitor() : adodb.inc.php - r - reportBugHistorys() : FunctionsMain.inc.php reportBugLiveDays() : FunctionsMain.inc.php reportBugsPerModule() : FunctionsMain.inc.php reportBugsPerProject() : FunctionsMain.inc.php reportBugsPerResolution() : FunctionsMain.inc.php reportBugsPerSeverity() : FunctionsMain.inc.php reportBugsPerStatus() : FunctionsMain.inc.php reportBugsPerType() : FunctionsMain.inc.php reportClosedBugsPerDay() : FunctionsMain.inc.php reportClosedBugsPerUser() : FunctionsMain.inc.php reportCreateData() : FunctionsMain.inc.php reportOpenedBugsPerDay() : FunctionsMain.inc.php reportOpenedBugsPerUser() : FunctionsMain.inc.php reportResolvedBugsPerDay() : FunctionsMain.inc.php reportResolvedBugsPerUser() : FunctionsMain.inc.php - s - SearchBugFullText() : FunctionsMain.inc.php smarty_block_textformat() : block.textformat.php smarty_compiler_assign() : compiler.assign.php smarty_core_assemble_plugin_filepath() : core.assemble_plugin_filepath.php smarty_core_assign_smarty_interface() : core.assign_smarty_interface.php smarty_core_create_dir_structure() : core.create_dir_structure.php smarty_core_display_debug_console() : core.display_debug_console.php smarty_core_get_include_path() : core.get_include_path.php smarty_core_get_microtime() : core.get_microtime.php smarty_core_get_php_resource() : core.get_php_resource.php smarty_core_is_secure() : core.is_secure.php smarty_core_is_trusted() : core.is_trusted.php smarty_core_load_plugins() : core.load_plugins.php smarty_core_load_resource_plugin() : core.load_resource_plugin.php smarty_core_process_cached_inserts() : core.process_cached_inserts.php smarty_core_process_compiled_include() : core.process_compiled_include.php smarty_core_read_cache_file() : core.read_cache_file.php smarty_core_rm_auto() : core.rm_auto.php smarty_core_rmdir() : core.rmdir.php smarty_core_run_insert_handler() : core.run_insert_handler.php smarty_core_smarty_include_php() : core.smarty_include_php.php smarty_core_write_cache_file() : core.write_cache_file.php smarty_core_write_compiled_include() : core.write_compiled_include.php smarty_core_write_compiled_resource() : core.write_compiled_resource.php smarty_core_write_file() : core.write_file.php smarty_function_assign_debug_info() : function.assign_debug_info.php smarty_function_config_load() : function.config_load.php smarty_function_counter() : function.counter.php smarty_function_cycle() : function.cycle.php smarty_function_debug() : function.debug.php smarty_function_escape_special_chars() : shared.escape_special_chars.php smarty_function_eval() : function.eval.php smarty_function_fetch() : function.fetch.php smarty_function_html_checkboxes() : function.html_checkboxes.php smarty_function_html_checkboxes_output() : function.html_checkboxes.php smarty_function_html_image() : function.html_image.php smarty_function_html_options() : function.html_options.php smarty_function_html_options_optgroup() : function.html_options.php smarty_function_html_options_optoutput() : function.html_options.php smarty_function_html_radios() : function.html_radios.php smarty_function_html_radios_output() : function.html_radios.php smarty_function_html_select_date() : function.html_select_date.php smarty_function_html_select_time() : function.html_select_time.php smarty_function_html_table() : function.html_table.php smarty_function_html_table_cycle() : function.html_table.php smarty_function_mailto() : function.mailto.php smarty_function_math() : function.math.php smarty_function_popup() : function.popup.php smarty_function_popup_init() : function.popup_init.php smarty_make_timestamp() : shared.make_timestamp.php smarty_modifier_capitalize() : modifier.capitalize.php smarty_modifier_capitalize_ucfirst() : modifier.capitalize.php smarty_modifier_cat() : modifier.cat.php smarty_modifier_count_characters() : modifier.count_characters.php smarty_modifier_count_paragraphs() : modifier.count_paragraphs.php smarty_modifier_count_sentences() : modifier.count_sentences.php smarty_modifier_count_words() : modifier.count_words.php smarty_modifier_date_format() : modifier.date_format.php smarty_modifier_debug_print_var() : modifier.debug_print_var.php smarty_modifier_default() : modifier.default.php smarty_modifier_escape() : modifier.escape.php smarty_modifier_indent() : modifier.indent.php smarty_modifier_lower() : modifier.lower.php smarty_modifier_nl2br() : modifier.nl2br.php smarty_modifier_regex_replace() : modifier.regex_replace.php smarty_modifier_replace() : modifier.replace.php smarty_modifier_spacify() : modifier.spacify.php smarty_modifier_string_format() : modifier.string_format.php smarty_modifier_strip() : modifier.strip.php smarty_modifier_strip_tags() : modifier.strip_tags.php smarty_modifier_truncate() : modifier.truncate.php smarty_modifier_upper() : modifier.upper.php smarty_modifier_wordwrap() : modifier.wordwrap.php smarty_outputfilter_trimwhitespace() : outputfilter.trimwhitespace.php smarty_outputfilter_trimwhitespace_replace() : outputfilter.trimwhitespace.php sysAddSlash() : FunctionsMain.inc.php sysHtml2Txt() : FunctionsMain.inc.php sysIconv() : FunctionsMain.inc.php sysMail() : FunctionsMain.inc.php sysSortArray() : FunctionsMain.inc.php sysSubStr() : FunctionsMain.inc.php |
回帖 |
wwccss 访问次数 : 593 注册日期 : 05-05-01 10:08 上次访问 : 10-07-19 11:44 |
好多函数不是我们写的。是第三方开源的代码。hoho |
回帖 |
Mr.Lee 访问次数 : 241 注册日期 : 05-10-06 10:46 上次访问 : 09-10-29 21:05 |
谢谢cuteser介绍了两个好软件 |
回帖 |
Mr.Lee 访问次数 : 241 注册日期 : 05-10-06 10:46 上次访问 : 09-10-29 21:05 |
[quote=Mr.Lee]谢谢cuteser介绍了两个好软件[/quote] 进来再次感谢。 |
回帖 |
cuteser 访问次数 : 242 注册日期 : 07-07-06 22:46 上次访问 : 09-10-29 21:05 |
呵, Mr.Lee咋还这么客气。 以下是俺的Doxygen的配置文件。 这仨必须设置成“YES”才能把函数调用呵被调用图给搞出来。 HAVE_DOT = YES CALL_GRAPH = YES CALLER_GRAPH = YES # Doxyfile 1.5.1 #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = bugFreeCode PROJECT_NUMBER = 1.1 OUTPUT_DIRECTORY = D:/AMP/WWW/Bugfree/SourceCodeDoc CREATE_SUBDIRS = YES OUTPUT_LANGUAGE = Chinese USE_WINDOWS_ENCODING = YES BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ is \ provides \ specifies \ contains \ represents \ a \ an \ the ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = YES STRIP_FROM_PATH = "C:/Documents and Settings/liang.wei/" STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = YES MULTILINE_CPP_IS_BRIEF = NO DETAILS_AT_TOP = NO INHERIT_DOCS = YES SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 8 ALIASES = OPTIMIZE_OUTPUT_FOR_C = YES OPTIMIZE_OUTPUT_JAVA = NO BUILTIN_STL_SUPPORT = NO DISTRIBUTE_GROUP_DOC = NO SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- EXTRACT_ALL = YES EXTRACT_PRIVATE = NO EXTRACT_STATIC = NO EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_METHODS = NO HIDE_UNDOC_MEMBERS = YES HIDE_UNDOC_CLASSES = YES HIDE_FRIEND_COMPOUNDS = NO HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO CASE_SENSE_NAMES = NO HIDE_SCOPE_NAMES = NO SHOW_INCLUDE_FILES = YES INLINE_INFO = YES SORT_MEMBER_DOCS = YES SORT_BRIEF_DOCS = NO SORT_BY_SCOPE_NAME = NO GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES SHOW_DIRECTORIES = NO FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = D:/AMP/WWW/Bugfree FILE_PATTERNS = *.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.d \ *.java \ *.ii \ *.ixx \ *.ipp \ *.i++ \ *.inl \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ \ *.idl \ *.odl \ *.cs \ *.php \ *.php3 \ *.inc \ *.m \ *.mm \ *.dox \ *.py RECURSIVE = YES EXCLUDE = EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = EXAMPLE_PATH = EXAMPLE_PATTERNS = * EXAMPLE_RECURSIVE = NO IMAGE_PATH = INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- SOURCE_BROWSER = YES INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES REFERENCES_LINK_SOURCE = YES USE_HTAGS = NO VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = NO COLS_IN_ALPHA_INDEX = 5 IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = html HTML_FILE_EXTENSION = .html HTML_HEADER = HTML_FOOTER = HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = YES CHM_FILE = HHC_LOCATION = GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 GENERATE_TREEVIEW = NO TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO LATEX_OUTPUT = latex LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex COMPACT_LATEX = NO PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = PDF_HYPERLINKS = NO USE_PDFLATEX = NO LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO RTF_OUTPUT = rtf COMPACT_RTF = NO RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = NO MAN_OUTPUT = man MAN_EXTENSION = .3 MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = xml XML_SCHEMA = XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = YES HAVE_DOT = YES CLASS_GRAPH = YES COLLABORATION_GRAPH = YES GROUP_GRAPHS = YES UML_LOOK = NO TEMPLATE_RELATIONS = NO INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES CALL_GRAPH = YES CALLER_GRAPH = YES GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png DOT_PATH = DOTFILE_DIRS = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 MAX_DOT_GRAPH_DEPTH = 1000 DOT_TRANSPARENT = NO DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = YES |
回帖 |
cuteser 访问次数 : 242 注册日期 : 07-07-06 22:46 上次访问 : 09-10-29 21:05 |
Doxygen帮助文件中,对“HAVE_DOT”的解释如下: HAVE_DOT If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is available from the path. This tool is part of Graphviz, a graph visualization toolkit from AT&T and Lucent Bell Labs. The other options in this section have no effect if this option is set to NO (the default)。 |
回帖 |
cuteser 访问次数 : 242 注册日期 : 07-07-06 22:46 上次访问 : 09-10-29 21:05 |
" 撰写正确格式的批注 http://www.image2003.com/image2003bbs/dispbbs.asp?boardID=17&ID=2463&page=3 并非所有程序代码中的批注都会被Doxygen 所处理。您必需依照正确的 格式撰写。原则上,Doxygen 仅处理与程序结构相关的批注,如 Function,Class ,档案的批注等。对于Function内部的批注则不做 处理。Doxygen可处理下面几种类型的批注。 JavaDoc类型: /** * ... 批注 ... */ Qt类型: /*! * ... 批注 ... */ 单行型式的批注: /// ... 批注 ... 或 //! ... 批注 ... 要使用哪种型态完全看自己的喜好。以笔者自己来说,大范围的注 解我会使用JavaDoc 型的。单行的批注则使用"///" 的类型。 此外,由于Doxygen 对于批注是视为在解释后面的程序代码。也就是 说,任何一个批注都是在说明其后的程序代码。如果要批注前面的程 式码则需用下面格式的批注符号。 /*!< ... 批注 ... */ /**< ... 批注 ... */ //!< ... 批注 ... ///< ... 批注 ... 上面这个方式并不适用于任何地方,只能用在class 的member或是 function的参数上。 举例来说,若我们有下面这样的class。 class MyClass { public: int member1 ; int member2: void member_function(); }; 加上批注后,就变成这样: /** * 我的自订类别说明 ... */ class MyClass { public: int member1 ; ///< 第一个member说明 ... int member2: ///< 第二个member说明 ... int member_function(int a, int b); }; /** * 自订类别的member_funtion说明 ... * * @param a 参数a的说明 * @param b 参数b的说明 * * @return 传回a+b。 */ int MyClass::member_function( int a, int b ) { return a+b ; } 当您使用Doxygen 产生说明文件时,Doxygen 会帮您parsing 您的程 式码。并且依据程序结构建立对应的文件。然后再将您的批注,依据 其位置套入于正确的地方。您可能已经注意到,除了一般文字说明外 ,还有一些其它特别的指令,像是@param及@return 等。这正是 Doxygen 另外一个重要的部分,因为一个类别或是函式其实都有固定 几个要说明的部分。为了让Doxygen 能够判断,所有我们就必需使用 这些指令,来告诉Doxygen 后面的批注是在说明什么东西。Doxygen 在处理时,就会帮您把这些部分做特别的处理或是排版。甚至是制作 参考连结。 首先,我们先说明在Doxygen 中对于类别或是函数批注的一个特定格 式。 /** * class或function的简易说明... * * class或function的详细说明... * ... */ 上面这个例子要说的是,在Doxygen 处理一个class 或是function注 解时,会先判断第一行为简易说明。这个简易说明将一直到空一行的 出现。或是遇到第一个"." 为止。之后的批注将会被视为详细说明。 两者的差异在于Doxygen 在某些地方只会显示简易说明,而不显示详 细说明。如:class 或function的列表。 另一种比较清楚的方式是指定@brief的指令。这将会明确的告诉 Doxygen,何者是简易说明。例如: /** * @brief class或function的简易说明... * * class或function的详细说明... * ... */ 除了这个class 及function外,Doxygen 也可针对档案做说明,条件 是该批注需置于档案的前面。主要也是利用一些指令,通常这部分注 解都会放在档案的开始地方。如: /*! \file myfile.h \brief 档案简易说明 详细说明. \author 作者信息 */ 如您所见,档案批注约略格式如上,请别被"\" 所搞混。其实,"\" 与"@" 都是一样的,都是告诉Doxygen 后面是一个指令。两种在 Doxygen 都可使用。笔者自己比较偏好使用"@"。 接着我们来针对一些常用的指令做说明: @file 档案的批注说明。 @author 作者的信息 @brief 用于class 或function的批注中,后面为class 或function的简易说明。 @param 格式为 @param arg_name 参数说明 主要用于函式说明中,后面接参数的名字,然后再接关于该参数的说明。 @return 后面接函数传回值的说明。用于function的批注中。说明该函数的传回值。 @retval 格式为 @retval value 传回值说明 主要用于函式说明中,说明特定传回值的意义。所以后面要先接一个传回值。然后在放该传回值的说明。 Doxygen 所支持的指令很多,有些甚至是关于输出排版的控制。您可从Doxygen的使用说明中找到详尽的说明。 下面我们准备一组example.h 及example.cpp 来说明Doxygen 批注的使用方式: example.h: /** * @file 本范例的include档案。 * * 这个档案只定义example这个class。 * * @author garylee@localhost */ #define EXAMPLE_OK 0 ///< 定义EXAMPLE_OK的宏为0。 /** * @brief Example class的简易说明 * * 本范例说明Example class。 * 这是一个极为简单的范例。 * */ class Example { private: int var1 ; ///< 这是一个private的变量 public: int var2 ; ///< 这是一个public的变量成员。 int var3 ; ///< 这是另一个public的变量成员。 void ExFunc1(void); int ExFunc2(int a, char b); char *ExFunc3(char *c) ; }; example.cpp: /** * @file 本范例的程序代码档案。 * * 这个档案用来定义example这个class的 * member function。 * * @author garylee@localhost */ /** * @brief ExFunc1的简易说明 * * ExFunc1没有任何参数及传回值。 */ void Example::ExFunc1(void) { // empty funcion. } /** * @brief ExFunc2的简易说明 * * ExFunc3()传回两个参数相加的值。 * * @param a 用来相加的参数。 * @param b 用来相加的参数。 * @return 传回两个参数相加的结果。 */ int ExFunc2(int a, char b) { return (a+b); } /** * @brief ExFunc3的简易说明 * * ExFunc3()只传回参数输入的指针。 * * @param c 传进的字符指针。 * @retval NULL 空字符串。 * @retval !NULL 非空字符串。 */ char * ExFunc2(char * c) { return c; } 上面这两个档案很简单的说明了Doxygen 批注的使用方式。您可依照此要领在你自己的程序代码中加上对应的批注。其实,无论您有无使用Doxygen ,都不妨依照他的格式将批注写入,一方面是依照他的格式,并不会干扰您程序的运作。另一方面,Doxygen 所定义的都是基本程序批注应当要有的东西。撰写清楚的批注是好的程序设计师应当的工作。" |
回帖 |
cuteser 访问次数 : 242 注册日期 : 07-07-06 22:46 上次访问 : 09-10-29 21:05 |
[quote=cuteser]doxygen和Graphviz这俩开源软件真可谓珠联璧合,尝试着用它俩分析了一下开源软件BugFree的代码,生成的文档(chm格式)刚刚漂亮,函数调用关系一清二楚。也看得出BugFree的主要开发者的大部分注释写得还比较正规,当然,没写注释的函数也很显眼:)。 这个坛子不能贴图,图放在俺博客上了。http://cuteser.blog.sohu.com/65084832.html 有需要这个chm文件的请留下邮箱。 BTW,这个chm文件中的中文显示有点问题,以前正常的啊,不知道是不是UTF8的缘故,俺再研究一下。[/quote] 关于中文乱码的问题: 用Doxygen1.4.7版本就没问题,Doxygen1.5以后的版本对中文支持的不太好。 Doxygen的历史版本可以从以下地址下载 ftp://ftp.stack.nl/pub/users/dimitri/ |
回帖 |
jady 访问次数 : 3 注册日期 : 08-12-24 13:24 上次访问 : 09-10-29 21:05 |
我下载了,可是没办法显示。 刚开始学习中 我的邮箱:fjdtdym@126.com 谢谢 |
回帖 |
lijun 访问次数 : 2 注册日期 : 10-01-30 17:30 上次访问 : 10-02-23 09:04 |
我是初学者,想着要看懂代码再按自己要想的功能改一下,看了两天了一点头绪都没有,请大师指点一下呀 我PHP学的也不好只是基础,怎么才能看懂呀? 我邮箱:lijuntju@126.com 可以给我传一下吗? 谢谢啦! |
回帖 |
wwylive 访问次数 : 1 注册日期 : 10-01-21 20:27 上次访问 : 10-03-02 14:44 |
楼主我也想要这个文件,我的邮箱是648672709@qq.com,多谢了! |
回帖 |