Skip to main content

Biên soạn có điều kiện là gì?

Trong lập trình máy tính, biên dịch có điều kiện mô tả khả năng của trình biên dịch phần mềm hoặc bộ xử lý mã nguồn bao gồm hoặc bỏ qua các lệnh hoặc khối mã nhất định dựa trên các hướng dẫn cụ thể ngôn ngữ không phải là một phần về mặt kỹ thuật của đặc điểm kỹ thuật ngôn ngữ lập trình cốt lõi.Các lệnh được sử dụng để kích hoạt biên dịch có điều kiện trong một chương trình thường được gọi là chỉ thị tiền xử lý, mặc dù chúng cũng có thể được gọi là chỉ thị trình biên dịch, nhận xét có điều kiện hoặc định nghĩa có điều kiện.Tùy thuộc vào trình biên dịch hoặc ngôn ngữ đang được sử dụng, các chỉ thị có điều kiện có thể là các biến hoặc macro do người dùng xác định, hoặc chúng cũng có thể là các biến hệ thống do trình biên dịch hoặc hệ điều hành đặt ra.Việc biên dịch có điều kiện thường được sử dụng để định cấu hình một bộ tệp nguồn duy nhất để chúng có thể được biên dịch trong các môi trường hoặc hệ điều hành khác nhau mà không phải hoán đổi hoặc thay đổi các tệp nguồn.Ngôn ngữ này sang ngôn ngữ khác, nhưng chúng thường là các biểu thức macro hoặc các biểu thức dữ liệu meta khác ngoài phạm vi của các biến chương trình thông thường.Trong các ngôn ngữ như C, các biến thường là các macro được đọc bởi bộ xử lý trước.Hầu hết thời gian, các macro không thể truy cập được bằng mã nguồn chương trình thực thi thực tế, mặc dù chúng tồn tại trong cùng một tệp nguồn.-Sthen tuyên bố.Các thử nghiệm cơ bản có thể được thực hiện để biên dịch có điều kiện là liệu một giá trị có được xác định hay không, không được xác định hay, trong một số trường hợp, liệu hai biến xác định có tương đương hay không.Các biến hoặc macro thường không giữ bất kỳ giá trị nào có ý nghĩa, bởi vì hành động xác định chúng là những gì các chỉ thị đang kiểm tra.Tuy nhiên, với một số ngôn ngữ và trình biên dịch, giá trị của một biến được xác định có thể quan trọng nếu chúng được đánh giá cho trạng thái boolean. Khi một trình biên dịch gặp các chỉ thị được sử dụng để biên dịch có điều kiện, các chỉ thị được đánh giá để xem liệu chúng có đúng hay sai.Nếu đúng, mã tuân theo chỉ thị được biên soạn là bình thường;Mặt khác, trình biên dịch sẽ bỏ qua hoàn toàn mã chứa trong Chỉ thị.Điều này không giống như các câu lệnh logic có điều kiện trong chính mã chương trình thực thi vì, ngay cả khi logic có một khối mã không thể được thực thi, nó vẫn sẽ được giải thích và biên dịch trong hầu hết các trường hợp.Với các chỉ thị tiền xử lý có điều kiện, mã đã bỏ qua không bao giờ được bao gồm, giải thích hoặc biên dịch.Cũng cần lưu ý rằng một khi bộ xử lý trước đã đánh giá tất cả các biến số và chỉ thị có điều kiện, chúng không được biên dịch với phần còn lại của chương trình, vì chúng chỉ nhằm mục đích cung cấp hướng cho trình biên dịch.Được sử dụng để bao gồm hoặc loại trừ mã dành riêng cho một hệ điều hành hoặc môi trường cụ thể.Điều này có nghĩa là các thư viện tồn tại trong một hệ điều hành có thể được bao gồm một cách có điều kiện nếu các chỉ thị xác định chương trình đang được biên dịch theo hệ điều hành đó.Thay phiên, các chỉ thị cũng có thể được sử dụng để bao gồm hoặc loại trừ mã dựa trên các biến do người dùng xác định.Điều này có thể được thực hiện để gỡ lỗi hoặc mã hồ sơ không được bao gồm trong phiên bản cuối cùng của chương trình hoặc vì vậy một số tính năng nhất định có thể được bật hoặc vô hiệu hóa mà không phải duy trì các bản sao riêng của mã.