Doxygen/강좌03
1. Main Page 작성 ¶Main Page는 무엇인가 하면 바로 Doxygen한 문서에서 첫화면에서 나오는 화면을
작성(장식)하는것이다.
왜 작성을 하는가 하면 이문서는 무엇을 설명하는가와 차례, 작성자, 작성날짜, 수정정보등 기타 정보를 보여주기 위함이다.(개인적으로는 작성자쓰는것을 -_-;;) 음음.. 각설하고 이제 한번 저번의 main화면을 다시 보겠다. 뭔가 허전하지 않는가? 보통 이곳이 멋져야 폼이 난다(-_-;). 그럼 이곳을 멋있게 장식해 보겠다. 일단 helo.c에 한번 문서화를 해보자. 1.1. 소스 작성 ¶
/**
@file hello.c @brief hello world 소스파일. */ /** @mainpage Hello World 메인페이지 @section intro 소개 - 소개 : 프로그램의 기본을 배울수있는 프로그램. @section Program 프로그램명 - 프로그램명 : Hello World 프로그램. - 프로그램내용 : 화면에 Hello World!을 출력한다. @section INOUTPUT 입출력자료 - INPUT : 없음. - OUTPUT : Hello World 화면출력. @section CREATEINFO 작성정보 - 작성자 : infiniterun - 작성일 : 2005/04/18 @section MODIFYINFO 수정정보 - 수정자/수정일 : 수정내역 - infiniterun/2005.0418 : "Helo World"에 "!"추가 */ #include <stdio.h> /** @brief hello Main 함수. @return 성공여부. */ int main( int argc, /**< 인자개수 */ char * argv[] /**< 인자 */ ) { printf("Hello World!\n"); return 0; } 1.2. 문서화 ¶
전화면과 많이 바뀐걸 알수 있다.
이제 이것을 설명하겠다.
1.3.1. @mainpage ¶
/**
@mainpage Main화면에 출력될 메시지(한글영문 모두 가능) ... */ /** 는 Doxygen구문이 시작된다는것이고 @mainpage 는 아래 Doxygen구문이 MainPage을 나타낸다는것이다. 2. 긴 설명 쓰기 ¶보통 함수 설명을 할때 brief는 간단한 설명을 쓰는것이고 반드시 한줄이내에 써야한다.
@brief에서 엔터(\n 포함)가 들어가면 안된다. 그래서 필요한것이 여러줄 설명, 긴줄 설명인데 이 여러줄 설명은 @brief 아래 빈줄 하나를 두고 설명을 쓴다. 2.1. 예제1 ¶
/**
@brief hello Main 함수. 긴 설명은 한줄을 넘긴다음 넣어준다. \n 하나둘. 셋.. 넷.. 다섯.. 여섯.. \n @return 성공여부. */ int main( int argc, /**< 인자개수 */ char * argv[] /**< 인자 */ ) { 주의 할것은 위의 것중 끝에 \n이 붙어 있는것만 문서화에서 엔터가 들어간다는 것이다. 위의
/**
... 긴 설명은 한줄을 넘긴다음 넣어준다. \n 하나둘. 셋.. 넷.. 다섯.. 여섯.. \n */ 긴 설명은 한줄을 넘긴다음 넣어준다. 하나둘. 셋.. 넷.. 다섯.. 여섯.. 이렇게 나온다.(엔터가 없고 대신 스페이스바가 하나 들어간다.) 3. struct(class), enum 문서화 ¶이제 아래 예제만 보면 거의 이해가 될것이다.
/**
@brief buffer structor Telnet에서 정송되는 데이터에 대해 프로토콜을 처리해야 하기 위하여, 효율적으로 데이터를 전송해야 할 입출력 버퍼 structor */ struct buffer { char *buf; /**< 데이터를 저장할 주소공간 */ int size; /**< buf에 할당된 메모리 크기 */ int head; /**< buf에 저장된 데이터의 처음 Index */ int tail; /**< buf에 저장된 데이터의 마지막 index */ int count; /**< buf에 저장된 데이터의 byte 수 */ }; /** @brief TRUE FALSE정의. */ enum BOOLEAN { FALSE=0, /**< FALSE */ TRUE /**< TRUE */ };
4. define, 전역변수 ¶
#define MAX_READ_BUF 1024 /**< 최대 read buffer size */
short port; /**< Telnet port number */
5. 지금까지 한 전체 소스 ¶
/**
@file hello.c @brief hello world 소스파일. 파일여러줄 설명입니다.\n 진짜 여러줄 입니다.\n 음.. 하나. 둘. 셋 넷다섯. */ /** @mainpage Hello World 메인페이지 @section intro 소개 - 소개 : 프로그램의 기본을 배울수있는 프로그램. @section Program 프로그램명 - 프로그램명 : Hello World 프로그램. - 프로그램내용 : 화면에 Hello World!을 출력한다. @section INOUTPUT 입출력자료 - INPUT : 없음. - OUTPUT : Hello World 화면출력. @section CREATEINFO 작성정보 - 작성자 : infiniterun - 작성일 : 2005/04/18 @section MODIFYINFO 수정정보 - 수정자/수정일 : 수정내역 - infiniterun/2005.0418 : "Helo World"에 "!"추가 */ #include <stdio.h> #define MAX_READ_BUF 1024 /**< 최대 read buffer size */ short port; /**< Telnet port number */ /** @brief buffer structor Telnet에서 정송되는 데이터에 대해 프로토콜을 처리해야 하기 위하여, 효율적으로 데이터를 전송해야 할 입출력 버퍼 structor */ struct buffer { char *buf; /**< 데이터를 저장할 주소공간 */ int size; /**< buf에 할당된 메모리 크기 */ int head; /**< buf에 저장된 데이터의 처음 Index */ int tail; /**< buf에 저장된 데이터의 마지막 index */ int count; /**< buf에 저장된 데이터의 byte 수 */ }; /** @brief TRUE FALSE정의. */ enum BOOLEAN { FALSE=0, /**< FALSE */ TRUE /**< TRUE */ }; /** @brief hello Main 함수. 긴 설명은 한줄을 넘긴다음 넣어준다. \n 하나둘. 셋.. 넷.. 다섯.. 여섯.. \n @return 성공여부. */ int main( int argc, /**< 인자개수 */ char * argv[] /**< 인자 */ ) { printf("Hello World!\n"); return 0; } 8. 게시판 ¶잘 봤습니다. 혹시 여러파일 버전이 기대되는군요. -- missu 2006-01-31 04:53:23
와 문서화 -- donguk22 2006-01-31 12:07:22
움. 누군가 볼꺼라고 생각도 못했는데. 보시는군요^^
시간나면 여러문서도 해볼까요?
![]() 잘 보고 있습니다.^^ -- 59.25.180.124 2006-02-01
저도 보고 있습니다. 지금하는거에 쓰고 있는데 도움이 되겠죠 ?
![]() 음, 오늘 처음 봤는데 내용이 좋네요. 앞으로도 좋은 내용 기대하겠습니다.
![]() 좋은 내용인 것 같습니다~ 역시 문서화~
잘 보고 갑니다.
![]() 이렇게 하는군요. 한번 써먹어봐야겠습니다. -- sp_uad01 2006-03-31
감사히 잘 보고 갑니다. 도움이 많이 되었어요.
![]() 감사합니다. 잘 보고 갑니다.
![]() 잘 봤습니다. 뭔지 궁금했는데 잘 설명을 해 주셔서 고맙습니다. --
![]() 감사합니다.
설명이 쉽게 되어있네요
앞으로 많은 도움이 될것 같아요
![]() 너무 좋은 자료 감사합니다
![]() doxygen이 어떤건지 궁금했는데,
좋은 도움 되었습니다. -- windfruit 2006-06-01
다시 doxygen쓰려고 찾아왔어요. doxygen이 생성하는 문서가 이전보다 예뻐졌네요(그리고 .c파일의 함수 주석이 헤더파일쪽에도 나오네요. 원래 그랬나ㅋ) -- Gomdori 2006-10-10 00:37:49
fehead형 저도 봤어요 ㅋㅋ -- ntames8 2007-06-08 16:07:03
난 이걸 이제 봤네... -- appler 2008-06-10 19:16:19
|
Words must be weighed, not counted. |