1
我在名爲foo.c的文件中有以下代碼。爲什麼在C函數中定義的宏沒有被Doxygen記錄下來?
/** @file */
#include <stdio.h>
/** Prints hello */
#define hello() printf("hello, ")
int main()
{
/** Prints world */
#define world() printf("world\n")
hello();
world();
}
我在同一個目錄下有一個名爲Doxyfile的文件。
PROJECT_NAME = Foo
JAVADOC_AUTOBRIEF = YES
當我運行doxyfile
命令,我得到的是這樣的一個文件。
爲什麼沒有爲world()
宏生成的文檔?我怎樣才能確保爲world()
宏生成文檔,而不會將其從功能main()
中刪除?
由於宏具有全局作用域,爲什麼不能在'main()'的定義之前定義'world()'? – owacoder
您是否嘗試將#define和評論移至第1列? – chqrlie
Doxygen可能使用宏對齊的陳舊規則(或具有類似陳舊或錯誤定義的規則的解析器)。在ANSI C之前,[宏不允許在行首和'#']之間有空格(http://www.delorie.com/gnu/docs/gcc/cpp_48.html)。 – ShadowRanger