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 .
x
có loại float
, sau đó x > 0.0
buộ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.37
không phải float
vậy double
. Vì vậy, nếu bạn muốn float
thì 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.37
sẽ được chuyển đổi hoàn toàn sang float
cá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 float
bắ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.