본문 바로가기
지식창고/IT 지식

Doxygen

by eteo 2023. 9. 29.

 

 

Doxygen은 코드 문서화 도구로, 코드에 대한 자동화된 문서를 생성하는 데 사용된다. 주석을 특정 형식으로 작성하여 코드의 클래스, 변수, 함수 등을 문서화할 수 있다.

 

Doxygen 주석의 일반적인 구조는 '/**'로 시작하고 '*/'로 종료되며, 주석 내부에는 여러 줄의 설명, 태그, 파라미터, 리턴 값 등을 추가할 수 있습니다

 

/**
  * @brief Brief description of the item.
  * 
  * Detailed description of the item. This can span multiple lines.
  * 
  * @param param1 Description of the first parameter.
  * @param param2 Description of the second parameter.
  * @return Description of the return value (if applicable).
  */

 

 

 

 

공식문서 매뉴얼 예시

 

https://www.doxygen.nl/manual/docblocks.html

 

Doxygen Manual: Documenting the code

This chapter covers two topics: How to put comments in your code such that doxygen incorporates them in the documentation it generates. This is further detailed in the next section. Ways to structure the contents of a comment block such that the output loo

www.doxygen.nl

 

/**
 *  A test class. A more elaborate class description.
 */
 
class Javadoc_Test
{
  public:
 
    /** 
     * An enum.
     * More detailed enum description.
     */
 
    enum TEnum { 
          TVal1, /**< enum value TVal1. */  
          TVal2, /**< enum value TVal2. */  
          TVal3  /**< enum value TVal3. */  
         } 
       *enumPtr, /**< enum pointer. Details. */
       enumVar;  /**< enum variable. Details. */
       
      /**
       * A constructor.
       * A more elaborate description of the constructor.
       */
      Javadoc_Test();
 
      /**
       * A destructor.
       * A more elaborate description of the destructor.
       */
     ~Javadoc_Test();
    
      /**
       * a normal member taking two arguments and returning an integer value.
       * @param a an integer argument.
       * @param s a constant character pointer.
       * @see Javadoc_Test()
       * @see ~Javadoc_Test()
       * @see testMeToo()
       * @see publicVar()
       * @return The test results
       */
       int testMe(int a,const char *s);
       
      /**
       * A pure virtual member.
       * @see testMe()
       * @param c1 the first argument.
       * @param c2 the second argument.
       */
       virtual void testMeToo(char c1,char c2) = 0;
   
      /** 
       * a public variable.
       * Details.
       */
       int publicVar;
       
      /**
       * a function variable.
       * Details.
       */
       int (*handler)(int a,int b);
};