Computer >> Máy Tính >  >> Lập trình >> C ++

Sự khác biệt giữa #define và const Keyword trong C ++ là gì?

Chỉ thị #define là một chỉ thị tiền xử lý; bộ tiền xử lý thay thế các macro đó bằng phần thân của chúng trước khi trình biên dịch thậm chí nhìn thấy nó. Hãy coi nó như một tìm kiếm tự động và thay thế mã nguồn của bạn.

Khai báo biến const khai báo một biến thực tế bằng ngôn ngữ mà bạn có thể sử dụng như một biến thực:lấy địa chỉ của nó, chuyển nó xung quanh, ép kiểu, chuyển đổi nó, v.v.

Không có tối ưu hóa trình biên dịch, sẽ có chi phí cấp phát bộ nhớ ẩn liên quan đến cả hai điều này trong các trường hợp khác nhau. Nhưng với sự tối ưu hóa thích hợp, chúng ít nhiều giống nhau. Ngoài ra, macro bộ xử lý trước không có bất kỳ phạm vi nào, trong khi các giá trị const thì có.