Hằng số do Macro xác định được thay thế bằng bộ tiền xử lý. Hằng số 'biến' được quản lý giống như các biến thông thường.
Ví dụ, đoạn mã sau:
#define A 8
int b = A + 10;
sẽ xuất hiện để trình biên dịch thực tế như
int b = 8 + 10;
Tuy nhiên, mã này:
const int A = 8;
int b = A + 10;
sẽ xuất hiện như:
const int A = 8;
int b = A + 10;
:)
Trong thực tế, điều chủ yếu nhất thay đổi là phạm vi: các biến liên tục tuân theo các quy tắc Phạm vi tương tự như biến chuẩn trong C, có nghĩa là họ có thể bị hạn chế, hoặc có thể định nghĩa lại, trong một khối cụ thể, mà không nó bị rò rỉ - nó tương tự như tình huống biến cục bộ so với biến toàn cầu.
Nguồn
2010-07-09 21:48:46
'không nên có sự khác biệt hiệu suất giữa hai' - Cảm ơn bạn đã làm cho nó rất rõ ràng. Trước khi tôi đọc trong một cuốn sách tồi tệ mà tôi có nói rằng sau này là chậm hơn so với sử dụng vĩ mô. –
Nhưng việc sử dụng macro đôi khi có thể tăng kích thước của tệp đối tượng. Giả sử bạn có một chuỗi rất lớn được lưu trữ trong macro, bộ xử lý trước sẽ thay thế tất cả sự xuất hiện của chuỗi này bằng giá trị của nó trước khi biên dịch, dẫn đến tệp đối tượng tương đối lớn hơn. – shashwat