2011-07-23 36 views
6

Điều này phải là một vấn đề phổ biến và có thể tương tự như một số câu hỏi ở đây nhưng tôi đang tìm kiếm kẻ thù cách tốt nhất để nhận xét nhiều dòng (thay vì phương pháp) trong C + + có ý kiến ​​trong họ. Tôi đã kiểm tra một số bài đăng trên SO nhưng không thể có được các chi tiết đầy đủ về cách sử dụng một cái gì đó như nếu # 0.Bình luận lồng nhau trong C++

Tôi đã xem bài đăng này Nested comments in Visual C++? nhưng tôi không có trên nền tảng Windows.

Trả lời

11

Bạn gần như chính xác; về cơ bản nó đang được đề xuất để "nếu-def" phần mã ra. Những gì bạn muốn làm là sử dụng chỉ thị biên dịch trước #if để chặn mã cho bạn. Ví dụ bên dưới cho thấy tôi muốn bỏ qua mọi thứ giữa if và endif.

#if 0 
/* Giant comment 
it doesn't matter what I put here */ 

// it will be ignored forever. 
#endif 

Để trả lời câu hỏi của bạn nói chung; có không phải là một cách để có ý kiến ​​hợp chất, ví dụ:

/* 
    /* */ <--- this closes the first /* 
*/ <--- this dangles. 
1

Những thứ giữa #if 0#endif sẽ bị bỏ qua bởi trình biên dịch. (Preprocessor của bạn thực sự có thể tước nó ra trước khi "biên dịch" thậm chí có thể có một cái nhìn vào nó!)

#if 0 

    /* 42 is the answer. */ 

    Have you tried jQuery? 

    @Compiler Stop ignoring me!! 

#endif 

Bạn sẽ có quyền kiểm soát tốt hơn nếu bạn sử dụng #ifdef s:

// #define DEBUG 


#ifdef DEBUG 
    MyFunction(); 
    std::cout << "DEBUG is defined!"; 
#endif 


// Later in your code... 

#ifdef DEBUG 
    std::cout << "DEBUG is still defined!"; 
#endif 

Chỉ cần bỏ ghi chú dòng đầu tiên và mã #ifdef DEBUG của bạn sẽ đột nhiên hiển thị với trình biên dịch.


P.S. Điều này sẽ xóa bất kỳ sự nhầm lẫn hơn:

/* 
    cout << "a"; 
    /* 
     cout << "b"; 
    */ 
    cout << "c"; 
*/ 

Sản lượng nên "c", giả sử biên dịch của bạn không cung cấp cho bạn bất kỳ lỗi nào cho cuối */.

+1

Một điều hữu ích khác cần lưu ý là bạn có thể xác định DEBUG tại thời gian biên dịch với chuyển đổi -D trong gcc/g ++ (và bất kỳ trình biên dịch đáng kính nào). Ví dụ: nếu bạn muốn biên dịch bản dựng gỡ lỗi của mình, bạn sẽ thực hiện 'gcc main.c -DDEBUG' và DEBUG sẽ được định nghĩa cho quá trình biên dịch đó. Điều này linh hoạt hơn nhiều so với DEBUG định nghĩa tĩnh trong một tệp. – Slubb

1

Một tuyến đường khác giả sử bạn đang sử dụng Visual Studio là có lối tắt bàn phím tiện dụng để nhận xét tất cả mã hiện được chọn, thêm // trước mỗi dòng. CTRL+K + CTRL+C để nhận xét và CTRL+K + CTRL+U để bỏ ghi chú.

2

Sử dụng bất kỳ điều gì có nghĩa là trình chỉnh sửa của bạn cung cấp để thêm // sự bắt đầu của tất cả các dòng.

Ví dụ trong Vim, bạn có thể đánh dấu các dòng là một khối hình ảnh và sau đó chèn vào đầu tất cả các dòng với I//. Trong Visual Studio, bạn có thể sử dụng phím tắt CTRL-K-C để nhận xét các khối mã.

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