2011-08-26 38 views
12

Tôi đang sử dụng doxygen để nhận xét mã C của mình. Tôi đang sử dụng API nước ngoài (nghĩa là không phải của riêng tôi) mà tài liệu khan hiếm vì vậy tôi dự định ghi lại một số API đó trong các tệp nguồn của riêng tôi. Tôi do có tệp tiêu đề cho API nước ngoài nhưng không thực tế để thêm nhận xét của riêng tôi vào tệp đó.Sử dụng doxygen để ghi lại thành viên của cấu trúc c bên ngoài định nghĩa cấu trúc

Ngoại Tiêu đề

struct foreignstruct 
{ 
    int a; 
    int b; 
}; 

Tiêu đề của tôi

/** My structure comments... 
struct mystruct 
{ 
    /** Describe field here... */ 
    int field; 
}; 

/** @struct foreignstruct 
* @brief This structure blah blah blah... 
* @??? a Member 'a' contains... 
* @??? b Member 'b' contains... 
*/ 

thẻ gì để tôi sử dụng ở vị trí của @??? để có được sản lượng doxygen đúng (nơi 'đúng' có nghĩa là sản lượng tạo ra cho mystructforeignstruct giống nhau)?

Trả lời

15

Có lẽ một ngày nào đó doxygen sẽ có một thẻ @field đặc biệt cho điều này, cho đến thời điểm đó, sau đây có thể được sử dụng:

/** @struct foreignstruct 
* @brief This structure blah blah blah... 
* @var foreignstruct::a 
* Member 'a' contains... 
* @var foreignstruct::b 
* Member 'b' contains... 
*/ 

Đó là một ký hiệu ngắn tay cho

/** @struct foreignstruct 
* @brief This structure blah blah blah... 
*/ 
/** @var foreignstruct::a 
* Member 'a' contains... 
*/ 
/** @var foreignstruct::b 
* Member 'b' contains... 
*/ 
+0

này giải pháp hoạt động nếu 'externalstruct' nằm trong một tệp được phân tích bởi doxygen. Bạn có mong đợi nó hoạt động nếu tập tin đó không được biết đến doxygen không? Tôi thấy 'cảnh báo: không tìm thấy thành viên lớp duy nhất cho ngoại ngữ :: a' khi định nghĩa ngoại không thể tìm được (điều này đúng bởi vì tôi không muốn phân tích cú pháp doxygen làm tiêu đề nước ngoài). Tôi đã thử thêm đường dẫn đến header ('@struct foreignstruct/full/path/to/header.h') nhưng tôi nhận được' warning: tên 'full/path/to/header.h 'được cung cấp làm đối số của lệnh \ class, \ struct, \ union hoặc \ include không phải là tệp đầu vào'. – Ben

+0

Cấu trúc thực sự nên được biết đến doxygen. Vì vậy, bạn có thể cho phép doxygen phân tích cú pháp tiêu đề nước ngoài ngoài tài liệu cục bộ của bạn hoặc thêm định nghĩa giả của cấu trúc với các trường cục bộ (nhưng sau đó bạn không phải sử dụng @struct và @var). – doxygen

+0

Không phải những gì tôi đã hy vọng câu trả lời sẽ là, nhưng đó là câu trả lời tôi mong đợi. Cảm ơn đã giúp đỡ. – Ben

Các vấn đề liên quan