2013-03-08 13 views
6

Điều này có vẻ giống như một yêu cầu tính năng khoa học viễn tưởng nhưng tôi tự hỏi, nếu Doxygen có bất kỳ của hai tính năng sau:Liệu Doxygen có hỗ trợ cho phân nhánh hoặc cho C/C++ Preprocessor

  1. Tạo cuộc gọi/gọi biểu đồ sau khi bộ xử lý trước chạy trên tệp đầu vào. Ví dụ:

    #define MULTITHREADING 1 
    

    và sau đó khối mã được kích hoạt hay vô hiệu hóa tùy thuộc vào việc MULTITHREADING được kích hoạt.

  2. Mô tả sự chắc chắn của cuộc gọi với mũi tên biểu đồ ... ví dụ như một đường chấm chấm nếu chức năng không phải luôn luôn được gọi là (hay còn gọi là nó đang ở trong một chi nhánh hoặc bạn có thể return trước khi hàm được gọi.

Trả lời

5

Đối với mục đầu tiên, bạn sẽ muốn bật tùy chọn trong ENABLE_PREPROCESSING bạn Doxyfile.

Đối với phần thứ hai, Thực sự tôi không biết, nhưng sẽ rất ngạc nhiên nếu nó đã làm. tôi nghĩ rằng điều này sẽ yêu cầu một C/C++ đầy đủ trình biên dịch để xác định những điều này.

+0

bạn chắc chắn ENABLE_PREPROCESSING hoạt động như tôi mong đợi nó hoạt động. Từ những gì tôi có thể thấy biểu đồ cuộc gọi được tạo ngay cả đối với mã không bao giờ được tạo với định nghĩa hiện tại – NoSenseEtAl

+0

Thành thật mà nói, tôi không chắc là trình phân tích cú pháp Doxygen có thực hiện được nhiệm vụ này hay không. Có lẽ bạn có nhiều may mắn hơn trên [mailing list] (https://lists.sourceforge.net/lists/listinfo/doxygen-users). –

+0

tnx ... một ngày, chúng sẽ chuyển sang chế độ phân tích cú pháp. : D – NoSenseEtAl

5
  1. Doxygen Preprocessing:

    file Nguồn được sử dụng như là đầu vào cho doxygen thể được phân tích bởi doxygen tích hợp trong C-Preprocessor.

    Theo mặc định doxygen chỉ thực hiện tiền xử lý một phần. Tức là, nó đánh giá các câu lệnh biên dịch có điều kiện (như #if) và đánh giá các định nghĩa macro , nhưng nó không thực hiện mở rộng macro.

  2. COLLABORATION_GRAPH:

    Nếu các thẻ COLLABORATION_GRAPH và HAVE_DOT được thiết lập để YES sau đó doxygen sẽ tạo ra một biểu đồ cho mỗi lớp tài liệu cho thấy phụ thuộc thực hiện trực tiếp và gián tiếp (thừa kế, ngăn chặn, và các biến tham chiếu lớp) của lớp học với các lớp khác được ghi lại là .

+0

cho tôi PP didnt làm việc, im không nói về macro exp ... tôi thậm chí kiểm tra g + + PP đầu ra để tập tin và kiểm tra nó .. Nó có thể là tôi đã làm điều gì sai trái ... sẽ là tốt đẹp nếu ppl có thể xác nhận/phủ nhận điều này bằng cách này hay cách khác ... – NoSenseEtAl