Kiến thức cơ bản của tôi về C và quá trình biên dịch gần đây đã biến mất. Tôi đã cố gắng tìm ra câu trả lời cho câu hỏi sau đây nhưng tôi không thể kết nối các giai đoạn biên dịch, liên kết và giai đoạn tiền xử lý. Một tìm kiếm nhanh trên Google cũng không giúp được gì nhiều. Vì vậy, tôi quyết định đi đến nguồn kiến thức tối thượng :) Định nghĩa biến trong các tệp tiêu đề
Tôi biết: Không được định nghĩa các biến trong tệp .h. Ok của nó để tuyên bố chúng ở đó.
Lý do: Do tệp tiêu đề có thể được đưa vào từ nhiều vị trí, do đó xác định lại biến nhiều lần (Trình liên kết đưa ra lỗi).
Có thể làm việc xung quanh: Sử dụng tiêu đề bảo vệ trong tệp tiêu đề và xác định biến trong đó.
Có thực sự là một giải pháp: Không. Vì bộ phận bảo vệ đầu trang dành cho giai đoạn tiền xử lý. Đó là để nói với trình biên dịch rằng phần này đã được bao gồm và không bao gồm nó một lần nữa. Nhưng lỗi đa định nghĩa của chúng tôi xuất hiện trong phần liên kết - nhiều sau khi biên dịch.
Toàn bộ điều này khiến tôi bối rối về cách xử lý trước công việc liên kết &. Tôi nghĩ rằng tiền xử lý sẽ không bao gồm mã, nếu biểu tượng bảo vệ đầu trang đã được xác định. Trong trường hợp đó, không nên định nghĩa nhiều vấn đề biến cũng được giải quyết?
Điều gì xảy ra khi các chỉ thị tiền xử lý này lưu quy trình biên dịch từ việc xác định lại các ký hiệu trong bộ bảo vệ tiêu đề, nhưng trình liên kết vẫn nhận được nhiều định nghĩa của biểu tượng?
yikes ... thực sự đơn giản :) – Methos