Tôi đã bắt gặp thành ngữ lập trình này gần đây:
const float Zero = 0.0;
mà sau đó được sử dụng trong so sánh:
if (x > Zero) {..}
Bất cứ ai có thể giải thích nếu điều này thực sự hiệu quả hơn hoặc có thể đọc hoặc duy trì hơn:
if (x > 0.0) {..}
LƯU Ý: Tôi có thể nghĩ ra các lý do khác để xác định hằng số này, tôi chỉ tự hỏi về việc sử dụng nó trong bối cảnh này .
xcó loại float, sau đó x > 0.0buộc quảng cáo double, có thể kém hiệu quả hơn. Đó không phải là một lý do chính đáng cho việc sử dụng một tên liên tục tuy nhiên, chỉ dành riêng cho việc bảo đảm hằng của bạn có đúng loại (ví dụ 0f, float(0)hoặc decltype(x)(0)).
13.37không phải floatvậy double. Vì vậy, nếu bạn muốn floatthì có thể hiểu rằng gia sư của bạn đã đúng. Trong một số bối cảnh (ví dụ: gán cho float) 13.37sẽ được chuyển đổi hoàn toàn sang floatcái bạn muốn và trong các bối cảnh khác (ví dụ: khấu trừ kiểu mẫu), nó sẽ không static const floatbắt đầu như kiểu bạn dự định. Do đó, loại an toàn hơn. Tâm trí bạn, vì vậy sẽ được 13.37f! Tuy nhiên, có nhiều lý do khác để tránh macro hơn là "an toàn kiểu", do đó, rất có thể gia sư đã đưa ra một cuộc tranh luận tồi.