Tôi có một tệp tiêu đề x.h được bao gồm bởi nhiều tệp * .c nguồn. Tệp tiêu đề này có một số biến cấu trúc được xác định.Tại sao những người bảo vệ biên dịch của tôi không ngăn cản nhiều sự bao gồm định nghĩa?
Tôi đã đưa nhiều vệ phòng bao gồm ở phần đầu của tập tin tiêu đề như:
#ifndef X_H
#define X_H
...
..
//header file declarations and definitons.
#endif//X_H
On tòa nhà tôi nhận được lỗi mối liên kết liên quan đến nhiều định nghĩa. Tôi hiểu vấn đề.
sẽ không phải là một bao gồm bảo vệ ngăn ngừa nhiều ở phía trên cùng của tập tin tiêu đề như tôi đã, ngăn chặn nhiều thể vùi của tập tin tiêu đề x.h và do đó tránh nhiều định nghĩa của các biến mà đang có trong x.h?
#pragma
một khi không hoạt động trên trình biên dịch cụ thể này, vậy giải pháp là gì? Ai đó đã đăng this câu trả lời cho một câu hỏi tương tự. Nó dường như không hiệu quả với tôi. Giải pháp này hoạt động như thế nào?
@Stephen: Nếu bạn đã chỉnh sửa tiêu đề câu hỏi, vui lòng xem phần thân (và có thể là thẻ, mặc dù không có ở đây). Điều này tránh chỉnh sửa trùng lặp (và chạm). –
@Paulo Thiếu nó, tôi đã cố gắng để xem cho nó mặc dù, nhờ lời nhắc nhở! – Stephen